{
  "$type": "site.standard.document",
  "canonicalUrl": "https://blog.nove-b.dev//posts/display-api-swagger-ui-golang",
  "path": "/posts/display-api-swagger-ui-golang",
  "publishedAt": "2023-12-28T00:00:00.000Z",
  "site": "at://did:plc:2atly2y5kfyjcj5zap6pv4wd/site.standard.publication/3mmxeqr2tcb2k",
  "tags": [
    "api",
    "go",
    "openapi",
    "swagger"
  ],
  "textContent": "タイトルにあるようにSwaggerで作成したいのであれば、yamlを作成すればいい。\n\nだけど、そんなことをするのは面倒くさい。\n\nというのもNestJsではデコレーターを追加するだけで自動でSwagger UIを作成してくれた。\n\nそこでGoでも同様な手順で実現できるライブラリを探してみた。\n\nswaggo/swag\n\nswaggo/swagを使えばできそうだったので試してみた。\n\nインストール\n\nアノテーションを作成する\n\nmain.goにアノテーションを追加する。\n\n記入後にswag initを実行する。\n\nすると上記ファイルたちが生成される。\n\nUIで確認する\n\nこれがいまいちわかなかったので、https://editor.swagger.io/に生成されたyamlファイルをコピペして見る方法にしているけど、localhost:18080/api/v1で見られるんだと思われる。\n\n...見れないので、要調査。\n\n⚠️ 違った。 localhost:18080/api/v1 上のURLはBaseURLだった。\n\nまあ、問題ないので、いったん上記方法で行く。\n\n追記:2023.12.30\nSwagger ViewerVSCodeの拡張機能があった。\n\n個別APIのアノテーションを作成する\n\nこんな感じで、アノテーションを追加すればいける。\n\n詳細はhttps://github.com/swaggo/swag?tab=readme-ov-file#declarative-comments-formatに詳しい。\n\n大枠はこれくらい。\n\n後は最適化していくだけ。",
  "title": "Go Langで作成したAPIをSwagger UIで表示する"
}