Logo de Código Facilito
  • Inicio
  • Replays
  • Iniciar sesión
  • Crear cuenta
  • Explorar cursos
  • Bootcamps
  • Precios
  • Blog

¡Califica el Curso profesional de Ruby on Rails!

Selecciona la calificación de 1 a 5 estrellas

Reporta un error

Curso Curso profesional de Ruby on Rails

Video Qué es REST

Tipo de error

Algo salió mal al cargar el vídeo

El vídeo no pudo cargarse, hemos enviado un reporte al equipo de desarrollo, para poder solucionarlo a la brevedad.

Mientras solucionamos el problema, intenta lo siguiente para solucionar el error:

  • Recarga la página
  • Intenta reiniciar tu navegador y luego vuelve a reproducir el vídeo
  • Vacía el caché de tu navegador
  • Intenta reproducir con las extensiones del navegador deshabilitadas
  • Intenta con un navegador distinto
  • Si el problema persiste contáctanos en Discord
home Ir al inicio report_problem Reportar falla star Valorar curso

Una parte importante del desarrollo de aplicaciones web, es entender que se trata de una constante comunicación entre dos equipos, el cliente y el servidor.

Como parte del desarrollo de tu aplicación web, vas a tener que establecer reglas de comunicación entre ambos, cómo recibirás los datos, qué páginas se pueden visitar, cómo se mostrarán los recursos solicitados, etc.

Existen guías existentes, a las que llamamos arquitecturas, como el MVC, pero en este caso para definir cómo se comunican el servidor y el cliente, una de las más populares es el REpresentational State Transfer o REST por sus siglas iniciales.

Roy Fielding introdujo este concepto en el año 2000 y cambió por completo el diseño de servicios web en general. En esta arquitectura se establecen una serie de principios que definen cómo se dará la comunicación entre dos equipos.

Hoy en día, los servicios web de Google, Twitter, Github, y las aplicaciones web en general respetan estos principios para poder separar las responsabilidades del cliente, con las del servidor. Rails es un framework que basa mucha de su funcionalidad y muchas de sus convenciones en esta arquitectura, por lo que es importante aprender de ella.

Como mencionaba, existen 6 limitantes que un sistema REST debe respetar.

  • Usar arquitectura cliente/servidor
  • Que no puede guardar estado, es stateless
  • Que puede guardar en caché información, a lo que normalmente nos referimos como cacheability
  • Que el sistema puede estar basado en capas.
  • Que poseen una interfaz uniforme
  • Y por último, que pueda extender la funcionalidad del cliente mediante el envío de código on demand. Esta última es la única limitante opcional.

Vamos a abarcar cada una de estas características de manera independiente para que quede en tu biblioteca de conocimiento cómo se define si un sistema usa REST o no.

Primero la arquitectura cliente/servidor, la idea detrás de esta guía es la separación de responsabilidades entre el cliente y el servidor. Así el cliente no se preocupa por el almacenamiento de los datos, y el servidor no se preocupa por la interfaz y el estado de la misma.

El beneficio de este principio es la portabilidad de los elementos, la interfaz puede ser multiplataforma y evolucionar independientemente del servidor, porque ambos están desconectados y son independientes.

El segundo principio, el del no estado o statelesness que habla de cómo en la comunicación entre el cliente y el servidor no existe contexto, es decir, cada petición entre los dos componentes debe ser independiente y nunca dependerá de peticiones anteriores.

Este principio beneficia el rendimiento del servidor, ya que este no debe almacenar información innecesaria, toda la que necesita vendrá en cada petición y será desechada al completar la petición misma, por otro lado, las aplicaciones web con más demanda suelen estar conformadas de más de una computadora servidor, el principio del no estado hace más sencillo esto ya que no hay necesidad de preocuparnos por qué computadora procesa cada petición, ya que las peticiones mismas son independientes

La cacheabilidad habla de la posibilidad de que algunas respuestas puedan ser almacenadas en caché, tal como hemos platicado antes. Para temas del servidor, lo importante es que este se encargue de definir cuáles respuestas pueden ser cacheadas y cuáles no, por cuánto tiempo se pueden almacenar en caché, etc.

El principio del sistema en capas nos dice que el servidor debe estar compuesto de distintas capas, cada una con una responsabilidad única y bien definida. Ejemplos de las capas son las definidas en la arquitectura MVC que usa Rails, la de presentación o vista, la de datos o el modelo, y la del controlador que se encarga de comunicar la vista con los datos.

Las capas en REST deben ser independiente, por lo que podríamos reemplaza una sin afectar a otras, además, una capa debe comunicarse sólo con las capas adyacentes, esto quiere decir que si nuestro sistema tiene una capa de presentación, una manejadora de peticiones y una de datos, en ese orden, la capa de presentación no puede directamente comunicarse con la de datos, porque no son adyacentes, en cambio, debe hacerlo a través de su capa adyacente, la de comunicación, que efectivamente sí puede comunicarse con la de datos por estar juntas.

La interfaz uniforme es una de las piedras angulares de esta arquitectura, es junto con el principio del no estado, las dos reglas más importantes de un sistema REST, tan es así que dedicaremos un vídeo exclusivo a hablar de este tema.

En pocas palabras, este principio dicta el estándar para la interfaz de comunicación entre el cliente y el servidor, es decir el cómo se comunicarán estas dos entidades.

Estandarizar la interfaz permite que cada capa del sistema evolucione independientemente, ya que la comunicación es un estándar, no tienes que preocuparte por cómo se está desarrollando el servidor, si estás desarrollando el cliente.

Por último tenemos la regla del código on demand. Este punto está pensado para que el servidor pueda enviar scripts de código, o en tiempo antaño un objeto de Flash o JAVA, para extender la funcionalidad del cliente. No ahondaremos mucho en este punto porque a final de cuentas, esta es la única regla que es opcional, ya que no todos los sistemas REST aplican este punto, aunque ciertamente con Rails hace uso de esta funcionalidad al permitirnos enviar código de JavaScript como respuesta a una petición.

Ahora que conoces la parte técnica, hablemos de manera más práctica en los siguientes temas.

  • check_circle_outline
    Módulo 1 | 10 clases

    Introducción al framework

    expand_more
  • check_circle_outline
    Módulo 2 | 9 clases

    Primeros pasos con Rails

    expand_more
  • check_circle_outline
    Módulo 3 | 10 clases

    Manejo de datos

    expand_more
  • check_circle_outline
    Módulo 4 | 6 clases

    REST

    expand_more
    • done_all

      Clase 1

      El scaffold

    • done_all

      Clase 2

      Qué es REST

    • done_all

      Clase 3

      REST en la práctica

    • done_all

      Clase 4

      Verbos HTTP y REST

    • done_all

      Clase 5

      Rutas REST

    • done_all

      Clase 6

      Ejercicio: Agregar una nueva columna al scaffold

  • check_circle_outline
    Módulo 5 | 9 clases

    Construye tu propio CRUD

    expand_more
  • check_circle_outline
    Módulo 6 | 10 clases

    Controladores y rutas

    expand_more
  • check_circle_outline
    Módulo 7 | 18 clases

    Modelos

    expand_more
  • check_circle_outline
    Módulo 8 | 13 clases

    Vistas y Formularios

    expand_more
  • check_circle_outline
    Módulo 9.-

    Examen del curso

    expand_more
    • done_all

      Examen

      Examen final del curso

Qué es REST

arrow_back Siguiente arrow_forward
Curso profesional de Ruby on Rails