Add a Go implementation of the TodosApi "stage 2" app
It should be a Go port of https://github.com/aspnet/Benchmarks/tree/main/src/BenchmarksApps/TodosApi and thus include:
- HTTP API for reading/adding/updating/deleting Todos from a database, including validation
- Health checks for the database and JWT configuration
- JWT authentication for the delete API
- Error response formatting as JSON Problem Details
Which framework should it use? Gin? https://dev.to/xngwng/top-5-go-rest-api-frameworks-k0e https://nordicapis.com/7-frameworks-to-build-a-rest-api-in-go/ https://www.slant.co/topics/1412/~best-web-frameworks-for-go
Gin (most popular), Echo, Fiber (most performant)
I work with Go and Gin (also a former .NET dev), and I can recommend Gin as an easy and performant way to build an API in Go. Look into the following:
- Gin Web Framework: this is the Go equivalent of your ASP .NET Web API.
- JWT Middleware for Gin Framework: use this for the JWT part
- gin-swagger: use this if you also want nice Swagger docs (it's not as good as the .NET equivalents, but does the job)
For error responses there are a few different options - you can probably use Gin's AbortWithStatusJSON() to return a JSON object along with a 500 or similar status code.
Not sure what you need with DB health checks exactly. Tell me more and I can advise.
may i know where to send PR?
WIP https://github.com/tg123/TodosApi
may i know where to send PR?
WIP https://github.com/tg123/TodosApi
you need to add the benchmark test, I guess. and if you wanna contribute to this project. you need Fork this repo, write your code there, and do PR
We can do the benchmarkification! Thank you for the starting point @tg123 !