Open API で開発する時の環境を整える
注意
自分用メモです。
業務で使うことになったので。
自分用のめもなので、当てにしないで下さい。
一時リソースは公式を見ましょう。
ちょっ早でやりたい人
git clone [email protected]:Asya-kawai/swagger-env.git
cd swagger-env
エディタを起動する。
docker-compose -f docker-compose-swagger-editor.yaml up
8001で起動するので後はAPIを作って下さい。
APIはyamlとかjsonでファイルに出力できるので。
リポジトリで公開。
bash install-docs.sh <APIを公開したいリポジトリ名> <↑で作ったAPIファイル>
以降は、ゆっくりしたい人のもの。
用意するもの
- Docker
- Docker compose
Docker や Docker compose のインストールはここ見てインストールしてな。
https://github.com/docker/compose/releases
見ても分からなければ、思考停止でこれうって。
curl -L https://github.com/docker/compose/releases/download/1.25.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
- swagger-editor (swaggerエディタ。open api を開発するためのエディタ)
- swagger-ui (open api な yamlとかjsonを表示するためのWebアプリケーション)
今回の仕様
- エディタをローカルホストの8001ポートで起動し
- ローカルホストの8000ポートでUIを表示し確認する
swagger-editor のインストール
ここみて、ほしいバージョンをインストール
https://hub.docker.com/r/swaggerapi/swagger-editor/
見ても分からなければ、思考停止で以下のコマンドうって、エディタ起動してみて。
docker pull swaggerapi/swagger-editor
docker run -d --rm -p 8001:8080 swaggerapi/swagger-editor
swagger-ui のインストール
ここみて、ほしいバージョンをインストール。
https://hub.docker.com/r/swaggerapi/swagger-ui/
見ても分からなければ、思考停止で以下のコマンドうって。
docker pull swaggerapi/swagger-ui
使い方
- swgger-editor で編集
- 上部のFileタブから「Save as YAML」を選択
- Downloads以下にXXXX.yamlが保存されるたことを確認
今回は、openapi.yaml で出力した。
ls openapi.yaml
openapi.yaml
- そのあと上記のXXXX.yamlファイルを swagger-ui にマウントさせて表示
docker run --rm \
-v $(pwd)/openapi.yaml:/usr/share/nginx/html/openapi.yaml \
-e API_URL=openapi.yaml \
-p 8000:8080 swaggerapi/swagger-ui
おまけ
githubで swagger-ui を公開する方法は以下の通り。
まずは、自分のリポジトリにdocsディレクトリを作成。
cd <Your-repository>
mkdir docs
その後。swagger-ui の dist ディレクトリ内を全てコピー。
git clone https://github.com/swagger-api/swagger-ui.git
cd swgger-ui
cp -r dist/* <Your-repository>/docs/
以下の行を書き換え
window.onload = function() {
// Begin Swagger UI call region
const ui = SwaggerUIBundle({
- url: "https://petstore.swagger.io/v2/swagger.json",
+ url: "./openapi.yaml"
参考
Author And Source
この問題について(Open API で開発する時の環境を整える), 我々は、より多くの情報をここで見つけました https://qiita.com/Asya-kawai/items/a1a73a594238f2463678著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .