REST Best Practices
1. Provide a URI for each resource that you want (or will want) exposed. This is consistent with Tim Berners-Lee's axioms for the Web,
as well as the W3 TAG recommendations.
2. Prefer URIs that are logical over URIs that are physical. For example:
Logical URIs allow the resource implementation to change without impacting client applications.
3. As a corollary to (2) use nouns in the logical URI, not verbs. Resources are "things" not "actions".
4. Make all HTTP GETs side-effect free. Doing so makes the request "safe".
5. Use links in your responses to requests! Doing so connects your response with other data. It enables client applications to be
"self-propelled". That is, the response itself contains info about "what's the next step to take". Contrast this to responses that do not
contain links. Thus, the decision of "what's the next step to take" must be made out-of-band.
6. Minimize the use of query strings. For example:
Rationale: the relationship between 'parts' and '00345' is clear, and you can instantiate subresources of '00345' easily; this is not possible
if that information is tucked away in a query string.