En resurs-URI bör läsas som en substantivbaserad path till en sak, inte en handling. HTTP-metoden levererar redan verbet, så URI:n behöver bara identifiera resursen tydligt och konsekvent.
En resurs-URI bör läsas som en substantivbaserad path till en sak, inte en handling. HTTP-metoden levererar redan verbet, så URI:n behöver bara identifiera resursen tydligt och konsekvent.
GET /users/42 — inte GET /getUser?id=42. Metoden (GET) är verbet./users är collection:en; /users/42 är en medlem. Att hålla plural överallt gör det förutsägbart./users/42/orders = "orders som tillhör user 42".kebab-case, gemener. /blog-posts, inte /blogPosts eller /Blog_Posts./users?role=admin&sort=-created_at./users collection av users
/users/42 en enskild user
/users/42/orders orders som tillhör user 42 (sub-collection)
/users/42/orders/1001 en specifik order för den user:n
/orders/1001 samma order, adresserbar på top-nivå också
GET /users/42/orders?status=shipped&sort=-created_at&page=2 HTTP/1.1
Accept: application/json
Undvik djup nesting bortom en eller två nivåer — /users/42/orders/1001/items/5/reviews blir skört. När en order väl har sitt eget ID, föredra /orders/1001. För handlingar som inte passar CRUD (t.ex. "skicka email") är en controller-stil sub-resource acceptabel: POST /users/42/verify-email.
Konsekvent namngivning är vad som får ett API att kännas intuitivt — en utvecklare som har sett /users och /users/42 kan korrekt gissa /products och /products/99 utan att läsa dokumentation. Intervjuare använder detta för att bedöma om du tänker i resurser (REST-tänket) snarare än RPC-anrop (/doThisThing). De vanligaste anti-mönstren — verb i path:en, inkonsekvent pluralisering, och djupt nästlade URL:er — gör alla ett API svårare att lära sig och underhålla, och de signalerar en utvecklare som inte har internaliserat REST:s uniform-interface-constraint. Bra URI-design håller också ansvarsområden separerade: identitet i path:en, filtrering och pagination i query-strängen, vilket håller caching och routing rent.
Ett bibliotek med IT-intervjufrågor och detaljerade svar — från Junior till Senior.
Donera