they are tightly couples with a specific action. Instead use nouns with complementing HTTP action verbs (GET, POST, PUT….) Be judicious when creating custom verb/actions
¡ /document-with-coverimage, /jpegdocument (Too Specific) ¡ /document (Just Right) ÷ Conveys a sense of purpose and a sense of structure without being to specific to what it is. Don’t Tunnel Resources ¡ /services?operation=“customerAdd” ÷ Resource becomes service endpoint for everything “God Endpoints”
in the model requires the client to add a lot of code to manage the meaning of this relationship. ¡ The relationship between user and reminder is not very clear just from the urls Recommendations ¡ Return models without associations where possible ¡ Reflect associations through URI nesting ÷ @GET @Path(“/user/{userid}/reminder{reminderid”}
go. ¡ More compact/better for mobile ¡ Easy consumption from JavaScript Support both JSON and XML if time constraints are non-existent. ¡ East to implement XML & JSON in JAX-RS
experience ¡ Cost the developer money in lost transactions ¡ Impact brand and reputation Avoid ¡ Forcing clients to wait for long running transactions ¡ Forcing constant polling for changes to your data Recommendations ¡ Provide asynchronous messaging/tasks ¡ 99.9+% of your APIs calls within 500 milliseconds