Un URI de resursă ar trebui să se citească precum o cale bazată pe substantive către un lucru, nu o acțiune. Metoda HTTP furnizează deja verbul, așa că URI-ul trebuie doar să identifice resursa clar și consistent.
Un URI de resursă ar trebui să se citească precum o cale bazată pe substantive către un lucru, nu o acțiune. Metoda HTTP furnizează deja verbul, așa că URI-ul trebuie doar să identifice resursa clar și consistent.
GET /users/42 — nu GET /getUser?id=42. Metoda (GET) este verbul./users este colecția; /users/42 este un membru. Menținerea pluralului peste tot o face previzibilă./users/42/orders = „comenzile aparținând utilizatorului 42".kebab-case, litere mici. /blog-posts, nu /blogPosts sau /Blog_Posts./users?role=admin&sort=-created_at./users colecția de utilizatori
/users/42 un singur utilizator
/users/42/orders comenzile aparținând utilizatorului 42 (sub-colecție)
/users/42/orders/1001 o comandă specifică a acelui utilizator
/orders/1001 aceeași comandă, adresabilă și la nivelul de top
GET /users/42/orders?status=shipped&sort=-created_at&page=2 HTTP/1.1
Accept: application/json
Evită imbricarea profundă dincolo de unul sau două niveluri — /users/42/orders/1001/items/5/reviews devine fragilă. Odată ce o comandă are propriul ID, preferă /orders/1001. Pentru acțiuni care nu se încadrează în CRUD (ex. „trimite email"), o sub-resursă în stil controller este acceptabilă: POST /users/42/verify-email.
Numirea consistentă este ceea ce face un API să pară intuitiv — un dezvoltator care a văzut /users și /users/42 poate ghici corect /products și /products/99 fără să citească documentația. Intervievatorii folosesc asta pentru a evalua dacă gândești în resurse (mentalitatea REST) mai degrabă decât în apeluri RPC (/doThisThing). Cele mai comune anti-pattern-uri — verbe în path, pluralizare inconsistentă și URL-uri profund imbricate — fac toate un API mai greu de învățat și de întreținut și semnalează un dezvoltator care nu a interiorizat constrângerea uniform-interface a REST. Un design bun de URI păstrează și preocupările separate: identitatea în path, filtrarea și paginarea în query string, ceea ce menține caching-ul și routing-ul curate.
O bibliotecă de întrebări de interviu IT cu răspunsuri detaliate — de la Junior la Senior.
Donează