Recursos rutas y metodos
El diseno de rutas es una de las partes mas visibles de una API. Una ruta buena comunica el modelo mental del sistema.
Recursos
Un recurso es una cosa del dominio que se puede identificar.
Ejemplos:
/users/orders/products/invoices/projects
Usa sustantivos, no verbos:
txt
Bien: /orders
Mal: /getOrdersColecciones e items
txt
GET /orders lista pedidos
POST /orders crea pedido
GET /orders/{id} obtiene pedido
PATCH /orders/{id} modifica parcialmente
DELETE /orders/{id} elimina o desactivaRecursos anidados
Usalos cuando la relacion sea parte natural del acceso.
txt
GET /orders/{orderId}/items
POST /orders/{orderId}/items
DELETE /orders/{orderId}/items/{itemId}Evita anidamiento excesivo:
txt
/companies/{companyId}/departments/{departmentId}/teams/{teamId}/users/{userId}Si una ruta es demasiado profunda, quizas necesitas filtros:
txt
GET /users?companyId=1&teamId=8Metodos HTTP
GET: leer sin efectos secundarios.POST: crear o ejecutar una accion no idempotente.PUT: reemplazar un recurso completo.PATCH: modificar parcialmente.DELETE: eliminar, cancelar o desactivar segun contrato.
Acciones de dominio
No fuerces todo a CRUD si el negocio tiene transiciones claras.
txt
POST /orders/{id}/confirm
POST /orders/{id}/cancel
POST /invoices/{id}/sendChecklist
- Las rutas usan sustantivos.
- Los metodos tienen significado HTTP correcto.
- Las acciones de negocio son explicitas.
- Los identificadores son estables.
- La profundidad de rutas se mantiene razonable.
