Every design and tech decision were taken based in order of importance by: what I want to experiment/discover, what I like, what's been recommended to me by the Go community
There's better way to write this API, specified in the uncommited Personal.md file mentioned in the .gitignore
Needs the Docker fix written in Personal.md
to gain time, and give a minimum viable product, I overlooked several things:
- database initialization
- docker best practices
- security (errors returned to the client, etc...)
- proper typing
- error and exception handling
- clean architecture patterns
- validating and/or escaping user input
-
PostgreSQL
-
Pgx
-
Docker & Docker Compose
-
google/uuid
go get -u github.com/jackc/pgx/v5
go get -u github.com/google/uuid
go get -u github.com/stretchr/testify/require
go get -u github.com/golang-migrate/migrate/v4
- gRPC
- protobuf
- google grpc
go get -u google.golang.org/grpc
-
protoc version >=3
-
Go protocol compiler plugins
go install google.golang.org/protobuf/cmd/[email protected]
go install google.golang.org/grpc/cmd/[email protected]