Un URI de recurso debería leerse como un path basado en sustantivos hacia una cosa, no como una acción. El HTTP method ya aporta el verbo, así que el URI solo necesita identificar el recurso de forma clara y consistente.
Un URI de recurso debería leerse como un path basado en sustantivos hacia una cosa, no como una acción. El HTTP method ya aporta el verbo, así que el URI solo necesita identificar el recurso de forma clara y consistente.
GET /users/42 — no GET /getUser?id=42. El method (GET) es el verbo./users es la collection; /users/42 es un miembro. Mantener el plural en todas partes lo hace predecible./users/42/orders = "orders que pertenecen al user 42".kebab-case, en minúsculas. /blog-posts, no /blogPosts ni /Blog_Posts./users?role=admin&sort=-created_at./users collection de users
/users/42 un único user
/users/42/orders orders que pertenecen al user 42 (sub-collection)
/users/42/orders/1001 un order concreto de ese user
/orders/1001 el mismo order, direccionable también en el top level
GET /users/42/orders?status=shipped&sort=-created_at&page=2 HTTP/1.1
Accept: application/json
Evita el anidamiento profundo más allá de uno o dos niveles — /users/42/orders/1001/items/5/reviews se vuelve frágil. Una vez que un order tiene su propio ID, prefiere /orders/1001. Para acciones que no encajan en CRUD (p. ej. "enviar email"), un sub-resource estilo controller es aceptable: POST /users/42/verify-email.
Un nombrado consistente es lo que hace que una API se sienta intuitiva — un desarrollador que ha visto /users y /users/42 puede adivinar correctamente /products y /products/99 sin leer la documentación. Los entrevistadores usan esto para calibrar si piensas en recursos (la mentalidad REST) en lugar de en llamadas RPC (/doThisThing). Los anti-patrones más comunes — verbos en el path, pluralización inconsistente, y URLs profundamente anidadas — hacen que una API sea más difícil de aprender y mantener, y delatan a un desarrollador que no ha interiorizado la restricción de uniform-interface de REST. Un buen diseño de URIs también mantiene las preocupaciones separadas: la identidad en el path, el filtrado y la paginación en el query string, lo que mantiene el caching y el routing limpios.
Una biblioteca de preguntas de entrevista de IT con respuestas detalladas — de Junior a Senior.
Donar