URI resursa trebao bi se čitati kao putanja temeljena na imenici do neke stvari, ne kao akcija. HTTP metoda već daje glagol, pa URI treba samo jasno i dosljedno identificirati resurs.
URI resursa trebao bi se čitati kao putanja temeljena na imenici do neke stvari, ne kao akcija. HTTP metoda već daje glagol, pa URI treba samo jasno i dosljedno identificirati resurs.
GET /users/42 — ne GET /getUser?id=42. Metoda (GET) je glagol./users je kolekcija; /users/42 je jedan član. Držanje množine posvuda čini to predvidljivim./users/42/orders = "narudžbe koje pripadaju korisniku 42".kebab-case, mala slova. /blog-posts, ne /blogPosts ili /Blog_Posts./users?role=admin&sort=-created_at./users kolekcija korisnika
/users/42 jedan korisnik
/users/42/orders narudžbe koje pripadaju korisniku 42 (pod-kolekcija)
/users/42/orders/1001 određena narudžba tog korisnika
/orders/1001 ista narudžba, dostupna i na top razini
GET /users/42/orders?status=shipped&sort=-created_at&page=2 HTTP/1.1
Accept: application/json
Izbjegavajte duboko ugnježđivanje iznad jedne ili dvije razine — /users/42/orders/1001/items/5/reviews postaje krhko. Kad narudžba ima vlastiti ID, preferirajte /orders/1001. Za akcije koje ne odgovaraju CRUD-u (npr. "pošalji email"), pod-resurs u stilu kontrolera je prihvatljiv: POST /users/42/verify-email.
Dosljedno imenovanje čini API intuitivnim — programer koji je vidio /users i /users/42 može ispravno pogoditi /products i /products/99 bez čitanja dokumentacije. Ispitivači ovim procjenjuju razmišljate li u resursima (REST način razmišljanja) umjesto u RPC pozivima (/doThisThing). Najčešći anti-obrasci — glagoli u putanji, nedosljedna množina i duboko ugnježđeni URL-ovi — svi otežavaju učenje i održavanje API-ja i signaliziraju programera koji nije usvojio REST-ovo ograničenje uniform-interfacea. Dobar dizajn URI-ja također razdvaja brige: identitet u putanji, filtriranje i straničenje u query stringu, što drži cachiranje i routing čistima.
Knjižnica IT pitanja za razgovore za posao s detaljnim odgovorima — od Juniora do Seniora.
Doniraj