Resource URI უნდა იკითხებოდეს როგორც არსებით სახელზე დაფუძნებული path „საგნისკენ", არა ქმედება. HTTP method უკვე იძლევა ზმნას, ამიტომ URI-ს მხოლოდ ის სჭირდება, რომ resource ნათლად და თანმიმდევრულად იდენტიფიცირდეს.
Resource URI უნდა იკითხებოდეს როგორც არსებით სახელზე დაფუძნებული path „საგნისკენ", არა ქმედება. HTTP method უკვე იძლევა ზმნას, ამიტომ URI-ს მხოლოდ ის სჭირდება, რომ resource ნათლად და თანმიმდევრულად იდენტიფიცირდეს.
GET /users/42 — არა GET /getUser?id=42. method (GET) არის ზმნა./users არის კოლექცია; /users/42 არის ერთი წევრი. მრავლობითის ყველგან შენარჩუნება მას პროგნოზირებადს ხდის./users/42/orders = „order-ები, რომლებიც user 42-ს ეკუთვნის".kebab-case, პატარა ასოებით. /blog-posts, არა /blogPosts ან /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
აიცილეთ ერთ-ორ დონეზე ღრმა ჩალაგება — /users/42/orders/1001/items/5/reviews მყიფე ხდება. როცა order-ს უკვე აქვს საკუთარი ID, უპირატესობა მიანიჭეთ /orders/1001-ს. ქმედებებისთვის, რომლებიც CRUD-ს არ ერგება (მაგ. „send email"), controller-ის სტილის sub-resource მისაღებია: POST /users/42/verify-email.
თანმიმდევრული დასახელება არის ის, რაც API-ს ინტუიციურს ხდის — დეველოპერს, რომელმაც /users და /users/42 ნახა, სწორად შეუძლია გამოიცნოს /products და /products/99 დოკუმენტაციის კითხვის გარეშე. ინტერვიუერები ამას იყენებენ იმის შესაფასებლად, ფიქრობთ თუ არა resource-ებით (REST-ის აზროვნება) და არა RPC call-ებით (/doThisThing). ყველაზე გავრცელებული anti-pattern-ები — ზმნები path-ში, არათანმიმდევრული მრავლობითობა და ღრმად ჩალაგებული URL-ები — ყველა API-ს სწავლასა და შენახვას ურთულებს და მიანიშნებს დეველოპერზე, რომელსაც REST-ის uniform-interface შეზღუდვა არ აქვს გათავისებული. კარგი URI დიზაინი ასევე ცალკე ინახავს საზრუნავებს: იდენტობა path-ში, filtering და pagination query string-ში, რაც caching-სა და routing-ს სუფთად ინახავს.
IT გასაუბრების კითხვების ბიბლიოთეკა დეტალური პასუხებით — Junior-დან Senior-მდე.
შემოწირულობა