Challenge 1: Nouns Not Verbs — Possible Solution ==================================================================== GET /getUser?id=5 -> GET /users/5 The verb "get" is redundant once you're already using the GET method — the resource is "a user," identified by its id in the path, not a query parameter bolted onto a verb-named endpoint. POST /createOrder -> POST /orders "Create" is exactly what POST already means for a resource collection — POSTing to the "orders" collection creates a new order. The verb belongs in the HTTP method, not the URL. POST /deleteComment?id=9 -> DELETE /comments/9 Two problems here: the verb "delete" is baked into the URL AND the method used is POST instead of DELETE. Fixed, the resource (a specific comment, identified by id) is the noun in the path, and DELETE is the verb that says what to do with it. WHY THIS WORKS AS AN ANSWER ------------------------------ In every case, the fix follows the same pattern: strip the verb out of the URL entirely, replace it with the resource's name (usually plural, like /users or /orders) plus an id when referring to one specific item, and let the HTTP method itself carry the action. If you find yourself needing a verb in the URL to describe what an endpoint does, that's usually a sign the endpoint is still thinking in RPC terms (Chapter 6) rather than REST's resource-oriented model.