Ένα URI πόρου πρέπει να διαβάζεται σαν ένα path βασισμένο σε ουσιαστικό προς ένα πράγμα, όχι σαν μια ενέργεια. Η μέθοδος HTTP παρέχει ήδη το ρήμα, οπότε το URI χρειάζεται απλώς να ταυτοποιεί τον πόρο καθαρά και με συνέπεια.
Ένα URI πόρου πρέπει να διαβάζεται σαν ένα path βασισμένο σε ουσιαστικό προς ένα πράγμα, όχι σαν μια ενέργεια. Η μέθοδος HTTP παρέχει ήδη το ρήμα, οπότε το URI χρειάζεται απλώς να ταυτοποιεί τον πόρο καθαρά και με συνέπεια.
GET /users/42 — όχι GET /getUser?id=42. Η μέθοδος (GET) είναι το ρήμα./users είναι η collection· το /users/42 είναι ένα μέλος. Το να παραμένετε στον πληθυντικό παντού το κρατά προβλέψιμο./users/42/orders = "τα orders που ανήκουν στον 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"), ένα sub-resource τύπου controller είναι αποδεκτό: POST /users/42/verify-email.
Η συνεπής ονομασία είναι αυτό που κάνει ένα API να μοιάζει διαισθητικό — ένας developer που έχει δει /users και /users/42 μπορεί να μαντέψει σωστά /products και /products/99 χωρίς να διαβάσει documentation. Οι συνεντευξιαστές το χρησιμοποιούν για να μετρήσουν αν σκέφτεστε με όρους πόρων (η νοοτροπία REST) παρά με όρους RPC calls (/doThisThing). Τα πιο συνηθισμένα anti-patterns — ρήματα στο path, ασυνεπής πληθυντικοποίηση, και βαθιά ενθεμένα URLs — όλα κάνουν ένα API πιο δύσκολο να μαθευτεί και να συντηρηθεί, και σηματοδοτούν έναν developer που δεν έχει εσωτερικεύσει τον περιορισμό uniform-interface του REST. Ο καλός σχεδιασμός URI κρατά επίσης τα ζητήματα διαχωρισμένα: ταυτότητα στο path, filtering και pagination στο query string, πράγμα που κρατά το caching και το routing καθαρά.
Μια βιβλιοθήκη ερωτήσεων συνέντευξης IT με αναλυτικές απαντήσεις — από Junior έως Senior.
Δωρεά