3 ms·
Ask HN: Good Ressources on API Architecture?
Backend rookie here!
I'm playing around with the coding of a small API for simple CMS needs which will be eventually the backend of my personal website. It has the standard stuff like logins, jwt authentication and there will be some minor data uploading stuff in its future iterations. It's written in Go and I use Mongo as my database.
Now I am asking myself whether there are some architectural approaches or patterns out there for building maintanable and also scalable backends with logical and secure APIs? Any good hints where to start or some good examples?
Thanks in advance!
- potato_database 3y agohere, might help ya https://cloud.google.com/apis/design https://cloud.google.com/apis/design https://learn.microsoft.com/en-us/azure/architecture/best-practices/api-design https://learn.microsoft.com/en-us/azure/architecture/best-pr... https://opensource.zalando.com/restful-api-guidelines/ https://opensource.zalando.com/restful-api-guidelines/
- hiimsteveee 3y agoI feel like these are a little too rigid when starting out, just make sure you version your API and try to keep it backwards compatible, it will evolve anyway
- alwinaugustin 3y agoI found the Google link useful regarding the design.
- dygd 3y agoCheck out the OpenAPI spec https://swagger.io/specification/ https://swagger.io/specification/. One advantage is that you can use the spec to generate both client and server-side code, see https://deliveroo.engineering/2022/06/27/openapi-design-first.html https://deliveroo.engineering/2022/06/27/openapi-design-firs... for example. If you're looking for inspiration, there's a ton of OpenAPI links at https://apirank.dev/ https://apirank.dev/
- deleted 3y ago[deleted]
- willmeyers 3y agoGeewax's API Design Patterns (https://www.manning.com/books/api-design-patterns https://www.manning.com/books/api-design-patterns) is a solid resource especially if you plan on using Go. It's based of Google's own API design principles: https://google.aip.dev https://google.aip.dev
- oldtimesnever 3y agoAlso roadmap.sh have a good set of resources for general (and web) design and architecture patterns: https://roadmap.sh/backend https://roadmap.sh/backend