Open6

Open API 再調査

anonymousanonymous

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
}
anonymousanonymous
.
└── 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
anonymousanonymous

生成された api_users.go の中で chi が無駄にimport されていて、コンパイル時にエラーになる。

https://github.com/OpenAPITools/openapi-generator/issues/11097

↑のissue で言及されている。

場合によっては使うが、場合によっては使わない、という状況。

コード生成結果がエラーをはくのはつらい