-
Notifications
You must be signed in to change notification settings - Fork 1
Mejores Prácticas para APIs REST
Al nombrar los recursos, utilizar nombres y NO verbos, además, nombrar el recurso en plural.
Recurso: Juegos
Endpoint: /Juegos
POST —----- Crea un juego nuevo
GET —----- Devuelve una lista de juegos
PUT —----- Actualiza una serie de juegos
y DELETE —------ Borra todos los juegos
/Juegos/123
POST —----- Método No Permitido
GET —----- Devuelve el juego con ID 123
PUT —----- Actualiza el juego con ID 123
y DELETE —------ Borra el juego con ID 123
NO USAR: /getAllGames /createNewGame /deleteAllGames
Las modificaciones que se hagan a los recursos deben hacerse con su verbo HTTP correspondiente: POST, PUT o DELETE. Nunca usar GET.
HATEOAS o Hypermedia as the Engine of Application State es un diseño que permite incluir el principio de hipervínculos de manera similar a la navegación web, lo que mejor navegación por la API. Este principio asegura que, cada vez que se realiza una petición al servidor y éste devuelva una respuesta, parte de la información que contiene será un liink asociado a los recursos de otros clientes.
En el filtrado, se debe pasar uno o varios parámetro de consulta únicos. Ejemplo:
GET /cars?color=red Devuelve una lista de coches rojos GET /cars?seats<=2 Devuelve una lista de coches con un máximo de 2 plazas
Para la ordenación, se necesita que se pueda ordenar de manera ascendente o descendente varios campos.
GET /cars?sort=-manufacturer,+model
Con esa ruta GET, se devuelven los fabricantes de manera descendente y los modelos de manera ascendente.
Paginación: Se refiere al uso de "offset" para establecer la posición de partida de una colección y "limit" para establecer el número de elementos de la colección a devolver desde el offset.
GET /cars?offset=10&limit=5
En esa ruta GET, se obtiene una lista de carros que se encuentren en las posiciones 10 a 15.
Se realiza para ofrecer compatibilidad en el versionado de una API.
tienda/api/v1
Algunos de ellos y sus significados son:
-
Estructurar de manera adecuada el proyecto Se deben separar las capas de la aplicación, algunas de estas son los controladores, servicios, módulos y DTOs. Esto se realiza para facilitar la escalabilidad y el mantenimiento de la aplicación.
-
Hacer uso de decoradores NestJS trae incluidos diversos decoradores como como @Controller, @Module e @Injectable que mejoran la legibilidad y estructuración del código.
-
Validar los datos NestJS trae un módulo llamado class-validator con el que se pueden realizar gran cantidad de validaciones sobre los datos de forma rápida.
-
Usar DTOs Estos permitirán estructurar de manera clara los datos enviados y recibidos desde solicitudes HTTP.
-
Usar Guards Estos sirven para proteger rutas y restringir el acceso a ciertas partes de la API según roles, permisos o cualquier otra lógica que decida el programador o cliente.
-
Usar Logging El framework posee un módulo llamado @nestjs/common con el que se puede registrar información útil sobre las solicitudes y los errores.