En esta ocasión presentamos estrategias de desarrollo de APIs REST, así como los distintas herramientas y lenguajes de especificación que nos van a permitir generar código y documentación. También repasamos herramientas de testing para APIs.
5. Separación de responsabilidades de presentación y procesamiento
Portabilidad de la interfaz de usuario
Simplicidad del servidor
Capacidad de modificar los componentes por separado
ServidorCliente
Byteflair
Arquitectura RESTArquitectura REST
Cliente/ServidorCliente/Servidor
6. Servidor
Mensajes autodescriptivos: semántica, datos, metadatos y contexto
Cliente2:Cliente
Cliente1:Cliente
Visibilidad
Fiabilidad
Escalabilidad
Rendimiento de red
Control sobre el comportamiento del cliente
Byteflair
Arquitectura RESTArquitectura REST
SinestadoSinestado
7. Cliente
Elimina total o parcialmente algunas de las interacciones
Rendimiento de red
Rendimiento percibido por el usuario
Cache
Servidor
Cache
Byteflair
Arquitectura RESTArquitectura REST
CacheableCacheable
8. 1.Identificación por URIs
2.Mensajes autodescriptivos
3.Manipulación a través de representaciones
4.HATEOAS
Simplicidad
Byteflair
Arquitectura RESTArquitectura REST
InterfazuniformeInterfazuniforme
9. Cliente
Cada capa solo conoce a su vecina
Simplicidad
Latencia
Cache
Servidor
Cache
Proxy
Cache
Balanceador
Byteflair
Arquitectura RESTArquitectura REST
PorcapasPorcapas
11. ¿Porqué REST sobre HTTP?¿Porqué REST sobre HTTP?
Byteflair
“Los límites de mi lenguaje son los límites de
mi nundo”
Todo el mundo habla HTTP
LudwigWittgenstein
12. REST sobre HTTPREST sobre HTTP
Separar la representación del recurso de los
metadatos de la petición
Representación Body→
Metadatos Headers→
Byteflair
13. REST sobre HTTPREST sobre HTTP
Utiliza el HTTP Status Code para dar
información acerca del resultado de la petición
2xx Ok→
4xx Elclientehahechoalgomal→
5xx Elservidorhafallado→
Byteflair
14. REST sobre HTTPREST sobre HTTP
Utiliza los HTTP Status Codes existentes que
mejor se adapten a la situación
Añade información específica cuando se
produzca un error
Byteflair
15. REST sobre HTTPREST sobre HTTP
Byteflair
Error HTTP
Error de negocio
Error técnico
19. HypermediaHypermedia
Modela el dominio del problema
Identificalosrecursosdeldominio
Identificalastransicionesdeestadodelsistema
Distingueentreestructurainternayloqueexponescomorecurso
Byteflair
¡No expongas la base de datos!
20. HypermediaHypermedia
Recursos del dominio
Vehicles Drivers
Users Owners
Sessions
Transiciones de estado
Crearrecursos
Filtrarrecursos
Asignarconductoravehículo
Activarsesión:conductor+vehículo
Desactivarsesión
Byteflair
21. HypermediaHypermedia
Definir los formatos de representación
Mime Types
Definir roles para cada control hypermedia
Rel Types
Convenciones semánticas
POST, PUT, GET, DELETE
Byteflair