Un URI di risorsa dovrebbe leggersi come un path basato su nomi verso una cosa, non come un'azione. Il metodo HTTP fornisce già il verbo, quindi l'URI deve solo identificare la risorsa in modo chiaro e coerente.
Un URI di risorsa dovrebbe leggersi come un path basato su nomi verso una cosa, non come un'azione. Il metodo HTTP fornisce già il verbo, quindi l'URI deve solo identificare la risorsa in modo chiaro e coerente.
GET /users/42 — non GET /getUser?id=42. Il metodo (GET) è il verbo./users è la collection; /users/42 è un membro. Restare al plurale ovunque la rende prevedibile./users/42/orders = "ordini appartenenti all'utente 42".kebab-case, minuscolo. /blog-posts, non /blogPosts o /Blog_Posts./users?role=admin&sort=-created_at./users collection of users
/users/42 a single user
/users/42/orders orders belonging to user 42 (sub-collection)
/users/42/orders/1001 a specific order of that user
/orders/1001 same order, addressable at top level too
GET /users/42/orders?status=shipped&sort=-created_at&page=2 HTTP/1.1
Accept: application/json
Evita l'annidamento profondo oltre uno o due livelli — /users/42/orders/1001/items/5/reviews diventa fragile. Una volta che un ordine ha un proprio ID, preferisci /orders/1001. Per azioni che non rientrano nel CRUD (es. "invia email"), una sotto-risorsa in stile controller è accettabile: POST /users/42/verify-email.
Una nomenclatura coerente è ciò che rende un'API intuitiva — uno sviluppatore che ha visto /users e /users/42 può indovinare correttamente /products e /products/99 senza leggere la documentazione. Gli intervistatori lo usano per valutare se pensi in termini di risorse (la mentalità REST) anziché di chiamate RPC (/doThisThing). Gli anti-pattern più comuni — verbi nel path, pluralizzazione incoerente e URL annidati in profondità — rendono tutti un'API più difficile da imparare e mantenere, e segnalano uno sviluppatore che non ha interiorizzato il vincolo di uniform-interface di REST. Un buon design degli URI mantiene anche separate le responsabilità: l'identità nel path, il filtraggio e la paginazione nella query string, il che mantiene puliti caching e routing.
Una raccolta di domande di colloquio IT con risposte dettagliate — da Junior a Senior.
Dona