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.

  • Módulo 1 | 10 clases

    Introducción al framework

    expand_more
    • play_circle_outline

      Clase 1

      Presentación del curso de Rails

    • play_circle_outline

      Clase 2

      Qué es Ruby on Rails

    • play_circle_outline

      Clase 3

      Conocimientos previos

    • play_circle_outline

      Clase 4

      Instalación en Mac

    • play_circle_outline

      Clase 5

      Instalación en Windows

    • play_circle_outline

      Clase 6

      Crear un proyecto de Ruby on Rails

    • play_circle_outline

      Clase 7

      Explorar los archivos del proyecto

    • play_circle_outline

      Clase 8

      Componentes del framework

    • play_circle_outline

      Clase 9

      Convención sobre configuración

    • play_circle_outline

      Clase 10

      Ambientes de desarrollo

  • Módulo 2 | 9 clases

    Primeros pasos con Rails

    expand_more
    • play_circle_outline

      Clase 1

      Primera vista y primera ruta. Hola mundo

    • play_circle_outline

      Clase 2

      Motor de render para las vistas

    • play_circle_outline

      Clase 3

      Cómo responde a una petición web Ruby on Rails

    • play_circle_outline

      Clase 4

      Introducción a las rutas

    • play_circle_outline

      Clase 5

      La ruta principal

    • play_circle_outline

      Clase 6

      Métodos en las vistas (Helpers)

    • play_circle_outline

      Clase 7

      Formularios en Rails

    • play_circle_outline

      Clase 8

      Leer parámetros en un controlador

    • play_circle_outline

      Clase 9

      Generadores de código

  • Módulo 3 | 10 clases

    Manejo de datos

    expand_more
    • play_circle_outline

      Clase 1

      Introducción al bloque

    • play_circle_outline

      Clase 2

      MIgraciones en Rails

    • play_circle_outline

      Clase 3

      Crear la base de datos y primer migración

    • play_circle_outline

      Clase 4

      ID y timestamps

    • play_circle_outline

      Clase 5

      Modelos

    • play_circle_outline

      Clase 6

      Pruebas unitarias

    • play_circle_outline

      Clase 7

      Primera prueba unitaria

    • play_circle_outline

      Clase 8

      Primera validación del modelo

    • play_circle_outline

      Clase 9

      El ActiveRecord

    • play_circle_outline

      Clase 10

      Acercamiento a las consultas

  • Módulo 4 | 6 clases

    REST

    expand_more
    • play_circle_outline

      Clase 1

      El scaffold

    • play_arrow

      Clase 2

      Qué es REST

    • play_circle_outline

      Clase 3

      REST en la práctica

    • play_circle_outline

      Clase 4

      Verbos HTTP y REST

    • play_circle_outline

      Clase 5

      Rutas REST

    • play_circle_outline

      Clase 6

      Ejercicio: Agregar una nueva columna al scaffold

  • Módulo 5 | 9 clases

    Construye tu propio CRUD

    expand_more
    • play_circle_outline

      Clase 1

      Crear la tabla y el modelo

    • play_circle_outline

      Clase 2

      Pruebas unitarias y validaciones

    • play_circle_outline

      Clase 3

      Crear el controlador

    • play_circle_outline

      Clase 4

      Rutas REST

    • play_circle_outline

      Clase 5

      Crear registros

    • play_circle_outline

      Clase 6

      Consultar y mostrar registros

    • play_circle_outline

      Clase 7

      Editar registros

    • play_circle_outline

      Clase 8

      Eliminar registros

    • play_circle_outline

      Clase 9

      Recapitulación del bloque

  • Módulo 6 | 10 clases

    Controladores y rutas

    expand_more
    • play_circle_outline

      Clase 1

      Detalles de un controlador

    • play_circle_outline

      Clase 2

      Respuestas de un controlador

    • play_circle_outline

      Clase 3

      Parámetros

    • play_circle_outline

      Clase 4

      Strong Params: Filtrado de parámetros

    • play_circle_outline

      Clase 5

      Filtros en el controlador

    • play_circle_outline

      Clase 6

      Cookies y sesiones

    • play_circle_outline

      Clase 7

      Mensajes flash

    • play_circle_outline

      Clase 8

      Concerns

    • play_circle_outline

      Clase 9

      Métodos asociados a rutas

    • play_circle_outline

      Clase 10

      Configurar las rutas recurso

  • Módulo 7 | 18 clases

    Modelos

    expand_more
    • play_circle_outline

      Clase 1

      Introducción al bloque

    • play_circle_outline

      Clase 2

      Filtrado con where

    • play_circle_outline

      Clase 3

      Operador lógico OR para consultas

    • play_circle_outline

      Clase 4

      Negación de consultas con NOT

    • play_circle_outline

      Clase 5

      Limpieza de parámetros (sanitizar)

    • play_circle_outline

      Clase 6

      Otras operaciones comúnes

    • play_circle_outline

      Clase 7

      Ejercicio: Implementar paginación

    • play_circle_outline

      Clase 8

      Scopes y métodos de clase

    • play_circle_outline

      Clase 9

      Configurando validaciones

    • play_circle_outline

      Clase 10

      Callbacks

    • play_circle_outline

      Clase 11

      Callbacks con su descripción en español

    • play_circle_outline

      Clase 12

      Relaciones entre tablas

    • play_circle_outline

      Clase 13

      Relaciones en el esquema

    • play_circle_outline

      Clase 14

      Definir asociaciones

    • play_circle_outline

      Clase 15

      Foreign Key Constraints

    • play_circle_outline

      Clase 16

      Relaciones muchos a muchos

    • play_circle_outline

      Clase 17

      Definir asociaciones muchos a muchos

    • play_circle_outline

      Clase 18

      Dónde aprender más

  • Módulo 8 | 13 clases

    Vistas y Formularios

    expand_more
    • play_circle_outline

      Clase 1

      Panorama general de las vistas

    • play_circle_outline

      Clase 2

      Layouts

    • play_circle_outline

      Clase 3

      yields con nombre

    • play_circle_outline

      Clase 4

      Trabajando con formularios

    • play_circle_outline

      Clase 5

      Cómo funcionan los métodos de FormBuilder

    • play_circle_outline

      Clase 6

      Select

    • play_circle_outline

      Clase 7

      Checkboxes

    • play_circle_outline

      Clase 8

      Checkboxes y relaciones

    • play_circle_outline

      Clase 9

      Radio buttons

    • play_circle_outline

      Clase 10

      Parciales

    • play_circle_outline

      Clase 11

      Render de colecciones

    • play_circle_outline

      Clase 12

      Bloques y layouts para parciales

    • play_circle_outline

      Clase 13

      Helper methods

  • 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