1. Resource modeling β nouns, not verbs
Model the domain as resources (nouns). HTTP methods are the verbs; URIs name the things, not the actions.
POST /createUser
POST /getUserById
POST /deactivateUserAccount
POST /sendPasswordResetEmail
POST /markOrderAsShippedPOST /users
GET /users/:id
PATCH /users/:id { "status": "deactivated" }
POST /users/:id/password-resets
PATCH /orders/:id { "status": "shipped" }
# Nested relationships: POST /users/:userId/orders
# Actions as sub-resources: POST /orders/:id/refundsHow to test for it: URLs contain only nouns (except well-known actions: /search, /ping). HTTP method expresses the action. Each resource supports the same method semantics across the API (GET always reads, POST always creates a subresource).