APIのテンプレート
予めprotocol bufferをインストールしておいてください。
https://grpc.io/docs/protoc-installation/
make build
make up
go get github.com/cespare/reflex
go get github.com/deepmap/oapi-codegen/cmd/[email protected]
go install google.golang.org/protobuf/cmd/[email protected]
go install google.golang.org/grpc/cmd/[email protected]
mkdir -p internal/http/echo/gen/
oapi-codegen -package gen -o internal/http/echo/gen/gen.go -generate "types,server" resource/openapi/openapi.yaml
protoc -I ./ --go_out=./ --go-grpc_out=./ resource/protocol-buffer/test-api.proto
docker-compose build
docker-compose up
インターフェイスを格納する場所。
関数群を定義してある
テンプレートではuserという機能として作りましたが、このディレクトリ配下に
- delivery
- usecase
- reposiroty
が配置されてます。
ユーザからアクセスされる場所。
例えばhttpサーバだったりのルーティングを書く
処理の中身を書く場所。
実処理はここに書いて、deliveryには書かないようにすると疎結合になる
データベース処理などを書く場所。
データベース処理などもdomainに書かれたインターフェイスを基に関数の実部を作りあげ、返却するようにする。
ユーザからアクセスされるdeliveryを作り、それに必要なusecaseを指定してあげる。usecaseを作成するときも必要なrepositoryを指定することで、お互いが疎な関係になるので付け替えが容易になる。
make test
go get github.com/cespare/reflex
go get github.com/deepmap/oapi-codegen/cmd/[email protected]
mkdir -p internal/http/echo/gen/
oapi-codegen -package gen -o internal/http/echo/gen/gen.go -generate "types,server" resource/openapi/openapi.yaml
go test -v ./...