ファイル分割とリアルタイムプレビューで快適にAPIドキュメントを作成したかった。ファイル分割とリアルタイムプレビューで快適にAPIドキュメントを作成したかった。皆さんSwagger(OpenAPI)書いてますかーー!!僕は書くのが辛いですが、書かないと後の自分がもっとつらいことが目に見えている(そりゃそうです)ので書いています。そんなSwaggerファイルですが、少しでも楽に書けるように工夫をしてみました。複数ファイルでSwaggerを管理したかったSwaggerファイルが巨大になる匂いを感じたので、分割して管理をしたかったのです。数1,000行とかになったり使い回し利かなかったり、色々と融通が利きません。一応分割は出来るらしいですが、バグがあったりSwaggerHubが1ファイル前提だったりと使いにくい部分が多いのです...。同様の課題を抱えている人は多く、実例もありました。Swaggerをファイル分割しながら、編集できるものを作成しました。変更時は自動で1ファイルに結合する深い階層の変更も監視を行う(New)Swagger定義ファイルが更新された際にホットリロード(New)自分の好きなようにディレクトリ名・構造を変更というようなものとなりました。これで多少はSwaggerの構築・運用が楽になるはず。普段webpackとか自分で書くことが無いので詰まりながらですが、恩恵は十分にあるはずなのです。全ソースはGitHub(こちら)においてあるので、良かったら使って見て下さい。変更した点Nginxではなくwebpack-dev-serverを使用するように変更Nginxはホットリロード機能がついていない(多分)なことと、webpack-dev-serverを使用するための設定が元々swagger-uiのgitリポジトリにあるので、そちらを使う形としました。直接ソースをダウンロードするようにしています...。webpack-dev-serverの設定変更swagger-uiのDockerコンテナの中に、「swagger-ui/webpack/dev.babel.js」というフォルダがありますが、このままだとswagger.yamlが変更監視対象に入らないファイルシステムの環境からDocker環境でのホットリロードが成り立たない(らしい)のでconfigに以下の内容を追記します。]}なお、色々設定がされていて、それらをコピペするのも冗長なので、直接ファイルを編集する形ではなく既存設定に追加をする形としました。Replacementをしたかったのですが、力不足で上手くいきませんでした...。ファイル分割とリアルタイムプレビューで快適にAPIドキュメントを作成したかった。「新しいLinuxの教科書」を読んだらLinuxの気持ちが分かるようになった。