Edited at

Swagger UIでローカルのファイルを表示する

More than 1 year has passed since last update.


Swagger UI

SwaggerUIを使うと、OpenAPI(fka Swagger)形式で記述したAPI仕様をブラウザ上で表示することができます。


ローカルのファイルを表示したい

SwaggerUIでは、ページ上部のInputボックスにURLを入力すると、そのAPIをレンダリングしてくれます。既にサーバに仕様ドキュメントがデプロイされている場合は、この方法で問題ありませんが、ローカルで開発している時にリポジトリ内のドキュメントをSwaggerUIで表示したい、みたいなときがままあります。

SwaggerUIは、公式のDocker Imageが提供されており、docker runする時にホストマシンのドキュメントが格納されたディレクトリをVolumeマウントしてあげればOKです。

たとえば、↓のようにyamlが格納されている場合を考えます。

web/doc

└── openapi.yaml

SwaggerUIのDocker Imageでは、nginxが入っているため↑のYamlをnginxが返せるようにマウントします。また、API_URLという環境変数でデフォルト表示に使われるドキュメントURLを指定できるので、ローカルのURLを設定します。たとえば下記のように指定すると、http://localhost:10000でSwaggerUIを開き、openapi.yamlが表示されます。

docker run -p 10000:8080 -v $(pwd):/usr/share/nginx/html/api -e API_URL=http://localhost:10000/api/web/doc/openapi.yaml swaggerapi/swagger-ui

良いOpenAPIライフを!