The best way to be an expert in something is to start working on it ... from scratch.
- This repo is structured in a way that there is clear separation of functionalities for your controller, business logic and database operations.
- Dependencies are injected from outside to inside.
- Swapping a router or database library to a different one becomes much easier.
This is the idea behind Clean Architecture. This way, it is easy to switch whichever library to another of your choice.
- Framework-less and net/http compatible handler
- Router/Mux with Chi Router
- Environment Viper
- Logger Zap
- JWT Authentication
- Google/Facebook/Apple Authentication
- Scans and auto-generate Swagger docs using a declarative comments format
- https://scene-si.org/2018/03/12/handling-http-requests-with-go-chi/
- https://scene-si.org/2018/05/08/protecting-api-access-with-jwt/
- JWT Flow: https://hasura.io/blog/best-practices-of-using-jwt-with-graphql/
- https://blog.questionable.services/article/http-handler-error-handling-revisited/
- https://use-the-index-luke.com/no-offset
- https://medium.com/@benbjohnson/structuring-applications-in-go-3b04be4ff091