En ressurs-URI bør leses som en substantivbasert path til en ting, ikke en handling. HTTP-metoden leverer allerede verbet, så URI-en trenger bare å identifisere ressursen tydelig og konsistent.
En ressurs-URI bør leses som en substantivbasert path til en ting, ikke en handling. HTTP-metoden leverer allerede verbet, så URI-en trenger bare å identifisere ressursen tydelig og konsistent.
GET /users/42 — ikke GET /getUser?id=42. Metoden (GET) er verbet./users er collection-en; /users/42 er ett medlem. Å holde flertall overalt gjør det forutsigbart./users/42/orders = "ordrer som tilhører user 42".kebab-case, små bokstaver. /blog-posts, ikke /blogPosts eller /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
Unngå dyp nøsting utover ett eller to nivåer — /users/42/orders/1001/items/5/reviews blir skjørt. Når en ordre har sin egen ID, foretrekk /orders/1001. For handlinger som ikke passer CRUD (f.eks. "send e-post"), er en sub-ressurs i controller-stil akseptabel: POST /users/42/verify-email.
Konsistent navngiving er det som gjør et API intuitivt — en utvikler som har sett /users og /users/42 kan korrekt gjette /products og /products/99 uten å lese dokumentasjonen. Intervjuere bruker dette til å vurdere om du tenker i ressurser (REST-tankesettet) snarere enn RPC-kall (/doThisThing). De vanligste anti-mønstrene — verb i pathen, inkonsistent flertallsbruk og dypt nøstede URL-er — gjør alle et API vanskeligere å lære og vedlikeholde, og de signaliserer en utvikler som ikke har internalisert REST sin uniform-interface-begrensning. God URI-design holder også hensyn adskilt: identitet i pathen, filtrering og paginering i query-strengen, som holder caching og ruting rent.
Et bibliotek av IT-intervjuspørsmål med detaljerte svar — fra Junior til Senior.
Doner