Skip to content

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:  /getOrders

Colecciones 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 desactiva

Recursos 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=8

Metodos 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}/send

Checklist

  • 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.