REST
- https://martinfowler.com/articles/richardsonMaturityModel.html
- https://alexkondov.com/tao-of-node
-
Disagreements
- Prefix API Routes – I’ve found adding a /v1 to your URLs to be problematic. When people do this, what I typically see done is, If you make a breaking change to one endpoint you end up increasing the version for all endpoints.
This can either:- Seem like “too big of a change” and so people make minor breaking changes without increasing the version,
- You have lots of versions and it’s hard for a client to stay up to date.
Instead, I prefer to start implementing Hypermedia Controls (via the
content-type
, andaccepts
headers) to handle this at the per-endpoint level. - Instead of Favor Express, I might suggest looking at https://www.fastify.io/
- Re: Pin Dependency versions, I think it’s ok to have your package.json versions loose, but you should be checking in your
package-lock.json
file and usenpm ci
- Prefix API Routes – I’ve found adding a /v1 to your URLs to be problematic. When people do this, what I typically see done is, If you make a breaking change to one endpoint you end up increasing the version for all endpoints.
-
Disagreements
GraphQL
DynamoDB