Open3

OpenAPI からGo のコードを生成する系全般

fnecofneco

参考記事

https://tech.layerx.co.jp/entry/generate-go-code-by-openapi-generator

  • openapi-generator
  • go-swagger
    • 対応しているバージョンが OpenAPI v2.0 までであるため、OpenAPI v3.0 に準拠したOpenAPI定義ファイルからはコードの生成ができませんでした

https://blog.p1ass.com/posts/ogen/

  • よく使われるのは
    • OpenAPITools/openapi-generator
    • deepmap/oapi-codegen
      • Strict server generation の機能(gRPC ライクな interface)
    • 生成される interface や型が個人的にあまり好みではなく、モヤモヤしながら使っていました
  • 推し
    • ogen-dev/ogen
      • ogen の良いところ
        • gRPC ライクな interface
        • null や optional に対してちゃんと型を付けようと努力している
        • OpenTelemetry の標準サポート

https://zenn.dev/rescuenow/articles/3c9a19eb2c0655

  • OpenAPI Generator
  • oapi-codegen
  • 結論
    • OpenAPIを使ってAPIの開発を進めていくにはoapi-codegenの方が向いていると感じました。
      • OpenAPI Generator は生成コードをカスタマイズしにくい

https://zenn.dev/otakakot/articles/43653194611d42

  • oapi-codegen
    • client や type のみの生成も可能
  • ogen
    • 標準の OpenAPI v3 で完結
    • Optional や Nullable に対応
    • OpenTelemetry に対応
  • 所感
    • 楽に厳密に実装できそうなのは ogen
    • ミドルウェアの実装を楽にしたいなら oapi-codegen
    • ライブラリ( echo や gin ) に慣れ親しんでいる方は oapi-codegen

https://www.reddit.com/r/golang/comments/udfujj/any_good_openapi_3x_spec_generator_for_a_go_rest/

その他

Google検索

fnecofneco

選択肢

OpenAPI Generator

GitHub: https://github.com/OpenAPITools/openapi-generator

HP: https://openapi-generator.tech/docs/generators/go/

検索上位記事: https://qiita.com/amuyikam/items/e8a45daae59c68be0fc8

oapi-codegen

GitHub: https://github.com/oapi-codegen/oapi-codegen

検索上位記事:

ogen

GitHub: https://github.com/ogen-go/ogen

HP: https://ogen.dev/

検索上位記事:

OpenAPI v3 未対応

2024/9/15 時点で OpenAPI v3 に対応できていない。v3 をサポートするための issue はあるが、対応される気配がない。

Swagger 2.0

GitHub: https://github.com/go-swagger/go-swagger

issue:

HP: https://goswagger.io/go-swagger/

検索上位記事: https://note.com/rescuenow_hr/n/nc0f7fbaeaac8

swag

GitHub: https://github.com/swaggo/swag

issue: https://github.com/swaggo/swag/issues/386

検索上位記事:

その他

validation