Ein Ressourcen-URI sollte sich wie ein substantivbasierter Pfad zu einem Ding lesen, nicht wie eine Aktion. Die HTTP-Methode liefert bereits das Verb, sodass der URI die Ressource nur klar und konsistent identifizieren muss.
Ein Ressourcen-URI sollte sich wie ein substantivbasierter Pfad zu einem Ding lesen, nicht wie eine Aktion. Die HTTP-Methode liefert bereits das Verb, sodass der URI die Ressource nur klar und konsistent identifizieren muss.
GET /users/42 — nicht GET /getUser?id=42. Die Methode (GET) ist das Verb./users ist die Collection; /users/42 ist ein Element. Überall im Plural zu bleiben hält es vorhersehbar./users/42/orders = "Orders, die zu User 42 gehören".kebab-case, Kleinschreibung. /blog-posts, nicht /blogPosts oder /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
Vermeide tiefe Verschachtelung über ein oder zwei Ebenen hinaus — /users/42/orders/1001/items/5/reviews wird brüchig. Sobald eine Order eine eigene ID hat, bevorzuge /orders/1001. Für Aktionen, die nicht in CRUD passen (z. B. "E-Mail senden"), ist eine Controller-artige Sub-Ressource akzeptabel: POST /users/42/verify-email.
Konsistente Benennung ist das, was eine API intuitiv wirken lässt — ein Entwickler, der /users und /users/42 gesehen hat, kann /products und /products/99 korrekt erraten, ohne Docs zu lesen. Interviewer nutzen das, um einzuschätzen, ob du in Ressourcen denkst (die REST-Denkweise) statt in RPC-Calls (/doThisThing). Die häufigsten Anti-Patterns — Verben im Pfad, inkonsistente Pluralisierung und tief verschachtelte URLs — machen eine API alle schwerer zu lernen und zu warten und signalisieren einen Entwickler, der REST's Uniform-Interface-Constraint nicht verinnerlicht hat. Gutes URI-Design hält auch die Belange getrennt: Identität im Pfad, Filtering und Pagination im Query String, was Caching und Routing sauber hält.
Eine Sammlung von IT-Interviewfragen mit ausführlichen Antworten — vom Junior bis zum Senior.
Spenden