Sesión 3: 2h1m
REST necesita restricciones
Interfaz uniforme: Todos los recursos del servidor tienen un nombre en forma de URL o hipervínculo.
- Identificación de recursos
- Un recurso está separado conceptualmente de la representación.
- Media Types de representación: application/json, application/xml, custom...
- Manipulación de los recursos a tavés de las representaciones
- La representación + metadatos deben ser suficientes para modificar o eliminar el recurso.
- Mensaje autodescriptivo
- Cada mensaje debe incluir información suficiente para describir cómo procesar el mensaje.
- Hypermedia as the Engine of Application State (HATEOAS)
- Hypermedia es una generalización de Hypertext (links)
- Indica como consumir y utilizar la API
- Permite la autodocumentación de la API
- REST ya te indica que autodocumentes la forma en que debes consumir los servicios. No indica utilizar OpenAPI para documentar servicios. Usamos OpenAPI porque no llegamos a implementar HATEOAS. Una forma de suplir la documentación de REST es usar OpenAPI y Swagger.
Cliente-Servidor: La aplicación se tiene que separar en dos componentes; el cliente y el servidor. Cliente y servidor pueden evolucionar por separado.
Statetlessness: El estado está contenido dentro de la solicitud.
Sistema en capas: El cliente no puede determinar a que capa está conectada.
Cacheable: Cada mensaje de respuesta debe indicar explícitamente si se puede almacenar en caché o no.
Código bajo demanda (opcional): El servidor puede extender la funcionalidad del cliente. La aplicación cliente puede recibir código del servidor. Ejemplo: El sevidor generar código JavaScript y se lo envía al cliente para su ejecución.
IMPORTANTE: Un sistema solo se considera RESTful cuando se adhiere a todas las restricciones requeridas. La mayoría de las API "RESTful" no son realmente RESTful, pero por eso no los hace malos APIs, siempre y cuando se entienda las posibles compensaciones.
¿Cuál es la diferencia entre una API y un servicio en el ámbito web?
No comments:
Post a Comment