Open6
Open API 再調査
OpenAPI Specification v3.1.0
swagger に書かれている 3.1.0
なぜ別れているのかよくわからない → 内容は同じで、page で別れているか、1ページにまとまっているかの違い、かもしれない
OpenAPI3 からは
が使われているらしい。今のところは 3.0 が安定してサポートされていると推察
こちらも標準
openapi-generator についてコード生成
docker run --rm -v "${PWD}:/local" openapitools/openapi-generator-cli generate \
-i /local/openapi/openapi.yaml\
-g go-server \
-o /local/oapigen/openapi-generator/
gorilla/mux に依存している
// NewRouter creates a new router for any number of api routers
func NewRouter(routers ...Router) *mux.Router {
router := mux.NewRouter().StrictSlash(true)
for _, api := range routers {
for name, route := range api.Routes() {
var handler http.Handler
handler = route.HandlerFunc
handler = Logger(handler, name)
router.
Methods(route.Method).
Path(route.Pattern).
Name(name).
Handler(handler)
}
}
return router
}
.
└── openapi-generator
├── Dockerfile
├── README.md
├── api
│ └── openapi.yaml
├── go
│ ├── api.go
│ ├── api_users.go
│ ├── api_users_service.go
│ ├── error.go
│ ├── helpers.go
│ ├── impl.go
│ ├── logger.go
│ ├── model_user.go
│ └── routers.go
├── go.mod
└── main.go
生成された api_users.go
の中で chi が無駄にimport されていて、コンパイル時にエラーになる。
↑のissue で言及されている。
場合によっては使うが、場合によっては使わない、という状況。
コード生成結果がエラーをはくのはつらい