URI zasobu powinno czytać się jak oparta na rzeczowniku ścieżka do rzeczy, a nie akcja. Metoda HTTP już dostarcza czasownik, więc URI musi tylko jasno i spójnie identyfikować zasób.
URI zasobu powinno czytać się jak oparta na rzeczowniku ścieżka do rzeczy, a nie akcja. Metoda HTTP już dostarcza czasownik, więc URI musi tylko jasno i spójnie identyfikować zasób.
GET /users/42 — nie GET /getUser?id=42. Metoda (GET) jest czasownikiem./users to kolekcja; /users/42 to jeden element. Trzymanie się liczby mnogiej wszędzie utrzymuje przewidywalność./users/42/orders = „zamówienia należące do użytkownika 42".kebab-case, małych liter. /blog-posts, nie /blogPosts ani /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
Unikaj głębokiego zagnieżdżania powyżej jednego–dwóch poziomów — /users/42/orders/1001/items/5/reviews staje się kruche. Gdy zamówienie ma już własne ID, wolej /orders/1001. Dla akcji, które nie pasują do CRUD (np. „wyślij e-mail"), pod-zasób w stylu kontrolera jest akceptowalny: POST /users/42/verify-email.
Spójne nazewnictwo sprawia, że API wydaje się intuicyjne — programista, który widział /users i /users/42, może poprawnie zgadnąć /products i /products/99 bez czytania dokumentacji. Rozmówcy używają tego, by ocenić, czy myślisz w kategoriach zasobów (nastawienie REST), a nie wywołań RPC (/doThisThing). Najczęstsze anty-wzorce — czasowniki w ścieżce, niespójna liczba mnoga i głęboko zagnieżdżone URL-e — wszystkie czynią API trudniejszym do nauki i utrzymania i sygnalizują programistę, który nie przyswoił ograniczenia jednolitego interfejsu REST. Dobry projekt URI utrzymuje też rozdzielone odpowiedzialności: tożsamość w ścieżce, filtrowanie i stronicowanie w query stringu, co utrzymuje cache'owanie i routing w czystości.
Biblioteka pytań rekrutacyjnych IT ze szczegółowymi odpowiedziami — od Juniora do Seniora.
Wesprzyj