"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Guía de diseño de API REST y convenciones de nomenclatura

Guía de diseño de API REST y convenciones de nomenclatura

Publicado el 2024-11-06
Navegar:753

Guide to REST API Design and Naming Conventions

Diseñar API RESTful de manera efectiva es crucial para crear sistemas escalables, mantenibles y fáciles de usar. Si bien existen ciertos estándares, muchos no son reglas estrictas sino mejores prácticas para guiar el diseño de API. Un patrón arquitectónico ampliamente utilizado para las API es MVC (Modelo-Vista-Controlador), pero por sí solo no aborda los aspectos más finos del diseño de API, como los nombres y la estructura. En este artículo, analizaremos las pautas esenciales para estructurar las API REST.

  1. Convenciones de nomenclatura y diseño orientado a recursos Las API a menudo se definen en torno a recursos, que representan entidades en su sistema, como "usuarios", "productos" o "pedidos". Un recurso puede ser un único elemento o una colección, y la API debe proporcionar una forma intuitiva y clara de interactuar con estos recursos.

Principios clave:
Orientado a recursos: diseñe sus API en torno a recursos, no a acciones. Los recursos deben considerarse como sustantivos, no como verbos. Por ejemplo:

/usuarios para acceder a la colección de usuarios.
/users/{userId} para acceder a un usuario específico.
Consistencia: la API debe ser intuitiva. Si un usuario puede obtener una lista de recursos de /users, debería poder obtener recursos individuales agregando un identificador: /users/{userId}.

Colección versus recurso único:

Una colección de recursos está representada por un sustantivo plural: /usuarios, /productos.
Un único recurso se representa agregando el identificador único de ese recurso: /users/{userId}, /products/{productId}.

  1. Los métodos HTTP definen la acción, no el URI La acción que se realiza (ya sea recuperar datos, crear nuevas entradas o actualizar datos existentes) no debe estar incrustada en el URI. En cambio, el método HTTP determina la acción.

Métodos HTTP comunes y sus casos de uso:
OBTENER: recuperar datos del servidor.

Ejemplo: GET /products devuelve una lista de todos los productos.
Ejemplo: GET /users/{userId} recupera el usuario con el userId especificado.
POST: Crea un nuevo recurso en el servidor.

Ejemplo: POST /users crea un nuevo usuario.
PUT: Reemplazar un recurso existente con datos nuevos (actualización completa).

Ejemplo: PUT /users/{userId} reemplaza los datos del usuario por completo con datos nuevos.
PARCHE: Actualiza parcialmente un recurso existente (actualización parcial).

Ejemplo: PATCH /users/{userId} actualiza solo los atributos especificados, como un número de teléfono.
ELIMINAR: Eliminar un recurso.

Ejemplo: DELETE /users/{userId} elimina el usuario con el userId especificado.

  1. La apatridia en REST Las API REST deben ser sin estado, lo que significa que cada llamada a la API debe contener toda la información que el servidor necesita para procesar la solicitud. Esto garantiza que cada solicitud sea autosuficiente y no dependa de solicitudes anteriores.

Ejemplo: al realizar una solicitud GET para obtener detalles del usuario, la solicitud debe incluir el token de autorización requerido, incluso si una solicitud anterior ya autenticó al usuario. Esto es esencial en sistemas distribuidos, donde diferentes solicitudes pueden llegar a diferentes servidores.

  1. Evitar el almacenamiento de datos específicos del servidor Ninguna solicitud de API debería depender del almacenamiento de datos temporales en un servidor específico. En un sistema distribuido, las solicitudes entrantes pueden enrutarse a cualquier servidor, por lo que se debe lograr el mismo resultado independientemente de qué servidor procese la solicitud. Es por eso que los estados de las sesiones no deben almacenarse en servidores individuales.

Solución: para la gestión de sesiones, utilice sistemas de almacenamiento centralizados o distribuidos como Redis o un mecanismo de autenticación sin estado como JWT (JSON Web Token).

  1. Tablas de recursos versus bases de datos El diseño de su API no debe tener una asignación uno a uno entre las tablas de la base de datos y los puntos finales de la API. La API debe exponer recursos lógicos y significativos que puedan combinar datos de múltiples tablas u fuentes.

Ejemplo:
GET /orders/{orderId} puede recuperar detalles del pedido, combinando información de las tablas pedidos, artículos_pedido y clientes.

  1. Flexibilidad en tipos de datos Las API REST no están limitadas por los tipos de datos o estructuras de tablas de su base de datos. Puede estructurar sus respuestas de la manera que mejor sirva a sus consumidores de API. Si bien JSON es el formato más utilizado, puedes devolver datos en otros formatos como XML o CSV si es necesario.

Ejemplo: un punto final GET /reports/{reportId} podría devolver un informe en una variedad de formatos (JSON, CSV, PDF) según los parámetros de consulta o encabezados de la solicitud.
Ejemplo de estructura de API
Para unir todos estos principios, aquí hay una estructura de API de muestra que sigue estas mejores prácticas:

GET /products: recupera todos los productos.
GET /products/{productId}: recupera detalles de un producto específico.
POST /products: Crea un nuevo producto.
PUT /products/{productId}: reemplaza el producto con productId.
PATCH /products/{productId}: Actualiza parcialmente el producto.
ELIMINAR /products/{productId}: Elimina el producto.
En esta estructura, los recursos están claramente definidos y los métodos HTTP especifican la acción a realizar, lo que garantiza una API limpia e intuitiva.

**Conclusión
**El diseño de API RESTful implica algo más que crear rutas y manejar métodos HTTP. Al centrarse en los recursos, aprovechar los métodos HTTP para acciones y respetar la apatridia, se crean API que son intuitivas, fáciles de mantener y escalables. Recuerde que las API deben ser flexibles e independientes de estructuras de bases de datos específicas, lo que permite una mayor adaptabilidad a medida que su sistema crece.

Seguir estas convenciones garantiza que el diseño de su API sea eficiente y fácil de usar, lo que en última instancia mejora la experiencia tanto para los desarrolladores como para los consumidores de su API.

Declaración de liberación Este artículo se reproduce en: https://dev.to/rahul_ranjan_7200/guide-to-rest-api-design-and-naming-conventions-46co?1 Si hay alguna infracción, comuníquese con [email protected] para eliminar él
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3