Sesión 3: 2h31m
Diseño del contrato
- Identificador de recursos
- http://localhost/api/authors
- Método HTTP
- https://datatracker.ietf.org/doc/html/rfc9110
- Payload (Representación: media types)
- Por convención se usa JSON
Lineamientos para el nombramiento de recursos
- Sustantivos: cosas, no acciones
api/getauthors- GET api/authors
- GEt api/authors/{authorId}
- Transmitir significado al elegir sustantivos
- Seguir el principio para la predictibilidad
api/something/somethingelse/authors- api/authors
api/id/authors- api/authors/{authorId}
- Representar la jerarquía al nombrar recursos
- api/authors/{authorId}/books
- api/authors/{authorId}/books/{bookId}
- Filters, sorting orders, ... no son recurso
api/authors/orderby/name- api/authors?orderby=name
- A veces las llamadas al estilo RPC no se asignan fácilmente a nombres de recursos pluralizados
api/authors/{authorId}/pagetotalsapi/authorpagetotals/{id}- api/authors/{authorId}/totalamountofpages
Interactuar con recursos a través de métodos HTTP
La importancia de los códigos de estado
- Los código de estado indican al consumidor
- Si la solicitud funcionó o no como se esperaba
- ¿Quién es responsable de una solicitud fallida?
- Ser lo más específico posible
- Los consumidores de API suele ser no humanos
- Ser especialmente específico en lo que respecta a informar quién/qué es responsable de un error.
Formateadores y Negociación de Contenido
- Output formatter
- Se ocupa del tipo de salida. Media type: Accept header
- Input formatter
- Se ocupa del tipo de entrada. Media type: Content-type header
Modelo externo frente al modelo de entidad
- El modelo de entidad representa las filas de la base de datos como objetos
- El modelo externior representa lo que se envía a través del servicio
No comments:
Post a Comment