Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

rssh-jp/api-develop

Repository files navigation

API

APIのテンプレート

使い方

事前準備

予めprotocol bufferをインストールしておいてください。
https://grpc.io/docs/protoc-installation/

Makefile版

make build
make up

docker-compose版

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

構成

domain

インターフェイスを格納する場所。
関数群を定義してある

機能ディレクトリ

テンプレートではuserという機能として作りましたが、このディレクトリ配下に

  • delivery
  • usecase
  • reposiroty

が配置されてます。

delivery

ユーザからアクセスされる場所。
例えばhttpサーバだったりのルーティングを書く

usecase

処理の中身を書く場所。
実処理はここに書いて、deliveryには書かないようにすると疎結合になる

repository

データベース処理などを書く場所。
データベース処理などもdomainに書かれたインターフェイスを基に関数の実部を作りあげ、返却するようにする。

使い方

ユーザからアクセスされるdeliveryを作り、それに必要なusecaseを指定してあげる。usecaseを作成するときも必要なrepositoryを指定することで、お互いが疎な関係になるので付け替えが容易になる。

テスト方法

Makefile版

make test

docker-compose版

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 ./...

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published