/oas3-enviroment-docker

DockerとSwaggerを使ったOAS 3.0.* 開発用の環境です

Primary LanguageDockerfile

SWAGGER API モックアップ・エディター環境 by Docker

Features

  • OAS3.0のみが対象です。2.0には対応してません
  • apisproutDockerを使ってSwaggerのモックアップ環境を構築できます。
  • Swagger Editorにも対応しました。
  • swagger-editor-live を使ってリアルタイムに読み込んだファイルを更新します
  • herokuを使ってそのままモックアップの環境を公開することも可能です。

How To Use

docker-composeを使う場合

docker-compose.yaml.exampleで例を記述してます。

version: "3"
services:
  editor:
    build: ./dockers/editor # エディターを立ち上げます
    environment:
      - PORT=8100
      - APINAME=api
    ports:
      - "8100:8100"
    volumes:
      - ./api:/api
  api:
    build: ./dockers/mock # モックサーバーを立ち上げます
    environment:
      - PORT=8101
      - APINAME=api
      - WATCH=true  
      - VALIDATE_REQUEST=true  
    ports:
      - "8101:8101"
    volumes:
      - ./api:/api

Swaggerの更新を適用するため、volumesapiディレクトリを指定してください。 必要な環境変数として、いくつかを指定することができます

PORT

apisproutを実行するポート番号を指定してください。 必ず指定してください portsを使ってホストマシンとゲスト側のポートリンクを行う必要があります。

ports:
    - "8100:8100" ## ホスト側のポート:ゲスト側のポート(PORTで指定している値)を指定してください

APINAME

実行する api フォルダに配置しているファイルの名前を指定してください。 指定がない場合はapiが指定され、api/api.yamlがファイルとして選択されます。

WATCH (モックサーバー専用)

apisproutwatch オプションを設定します。 設定する場合は、WATCH=trueなどを指定してください。

VALIDATE_REQUEST (モックサーバー専用)

apisproutvalidate-request オプションを設定します。 設定する場合は、VALIDATE_REQUEST=trueなどを指定してください。

docker-compose up を実行すれば localhost:8000 でモックアップサーバーが立ち上がります

複数のAPIサーバーを立ち上げたい場合は、servicesに追加すれば立ち上げることができます。

services:
  test:
    build: ./dockers/mock # モックサーバーを立ち上げます
    environment:
      - PORT=8100
      - APINAME=test # api/test.yamlを実行
      - WATCH=true 
      - VALIDATE_REQUEST=true 
    ports:
      - "8100:8100"
    volumes:
      - ./api:/api
  api:
    build: ./dockers/mock # モックサーバーを立ち上げます
    environment:
      - PORT=8100
      - APINAME=api # api/api.yamlを実行
      - VALIDATE_REQUEST=true 
    ports:
      - "8101:8101"
    volumes:
      - ./api:/api

上記のようにすると、 localhost:8100api/test.yamllocalhost:8101api/api.yamlのモックがそれぞれ立ち上がります

Herokuへのデプロイについて

Herokuにログインしていない場合はHerokuにログインしてください。

$ heroku login

モックを公開したいプロジェクトがない場合は heroku create を実行して作成してください

$ heroku create

heroku configを使ってAPINAMEを指定しています。 APINAMEにはモックにしたいapi/yamlファイルの名前を指定してください。 指定がない場合はapi.yamlが指定されます。

$ heroku config:set APINAME=test -a your-app-name

あとはheroku containerpush および release を実行してコンテナーを公開してください

$ heroku container:push web -a your-app-name
$ heroku container:release web -a your-app-name

今後のTodo