LoginSignup
13
9

More than 3 years have passed since last update.

Docker + Swagger + Stoplight Prismを用いたAPI仕様書作成環境+APIモックサーバーの構築方法 メモ

Last updated at Posted at 2021-05-02
  • Docker、Swagger、Stoplight Prismを使用したAPI仕様書作成+APIモックサーバーの構築方法についてメモする。

Swaggerとは

  • REST APIのドキュメント記載に関するフォーマット仕様とswagger-uiやswagger-editorなどの周辺ツールを指す。
ツール 説明
Swagger Spec OpenAPI仕様に則ったAPI仕様
Swagger Editer OpenAPI仕様に則ったAPI仕様を書くためのエディタ
Swagger UI OpenAPI仕様に則ったAPI仕様からドキュメントを生成するツール
Swagger Codegen OpenAPI仕様に則ったAPI仕様からコードを生成するツール

Stoplight Prism

  • Stoplight社が提供するOSSのモックサーバー。
  • Swagger Specを読み込むことで、APIモックサーバーを起動する。

事前準備

  • docker, docker-compose のインストール。
    • インストール方法は割愛する。

環境構築

  • ディレクトリ構成
  SwaggerTest --- docker-compose.yml
               L_ api_reference.yaml
  • docker-compose.yml
  version: "3"
  services:
    swagger-editor:
      image: swaggerapi/swagger-editor
      container_name: "swagger-editor"
      ports:
        - "10081:8080"
    swagger-ui:
      image: swaggerapi/swagger-ui
      container_name: "swagger-ui"
      ports:
        - "10082:8080"
      volumes:
        - ./api_reference.yaml:/usr/share/nginx/html/api_reference.yaml
      environment:
        API_URL: api_reference.yaml
    swagger-api:
      image: stoplight/prism:3
      container_name: "swagger-api"
      ports:
        - "10083:4010"
      command: mock -h 0.0.0.0 /api_reference.yaml
      volumes:
        - ./api_reference.yaml:/api_reference.yaml

動作確認

コンテナ起動

  • SwaggerTestディレクトリに移動し、以下のコマンドを実行する。
docker-compose up

Swagger Editor

swagger_editor.png

Swagger UI

Stoplight Prism (APIモックサーバー)

  • 以下のリクエストを行い、以下のレスポンスが返却されることを確認する。

リクエスト

  GET /pets HTTP/1.1
  Host: localhost:10083

レスポンス(期待値)

  [
      {
          "id": 0,
          "name": "string",
          "tag": "string"
      }
  ]

参考情報

13
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
9