記事検索

検索ワードを入力してください。
Sky Tech Blog
【Prism】OpenAPI定義を​使用した​モックサーバーの​構築

【Prism】OpenAPI定義を​使用した​モックサーバーの​構築

OpenAPI定義ファイルを基にモックサーバーを簡単に構築できるOSS「Prism」の使い方を紹介します。OpenAPI定義ファイルの準備から、Dockerを使ったモックサーバーの起動、curlでのリクエスト実行方法までを具体的に解説します。

開発時にモックサーバーを立てて未完成のサービスとの結合を検証する機会はよくあると思います。
その際に、OpenAPI定義を基にモックサーバーを簡単に構築することができるPrismというOSS製品が便利でしたので、使い方をご紹介いたします。

Prismとは

PrismはOpenAPI定義ファイルを基にモックサーバーを構築できるOSS製品です。
OpenAPI定義ファイルがあれば、手軽にモックサーバーの構築ができ動作確認等を行うことができます。

使い方

1. OpenAPI定義ファイルの​準備

まずはOpenAPIで記載されたAPI仕様書を準備します。
今回はサンプルとして、以下のような定義ファイルを使用します。
exampleに設定した値がモックサーバーのレスポンスとして返却されます。

openapi: 3.0.3

info:
  description: "Sample API"
  version: "1.3"
  title: "Sample API"

servers:
  - url: https://sample/v1

paths:
  /products:
    get:
      summary: "GetProductsName"
      description: "販売している商品の名前を取得する"
      responses:
        "200":
          description: "Success"
          content:
            application/json:
              schema:
                type: object
                properties:
                  for_sales_products:
                    type: array
              examples:
                example-1: 
                  value: 
                    for_sales_products: [ "カメラ", "テレビ", "洗濯機" ]
                example-2: 
                  value: 
                    for_sales_products: [ "掃除機", "エアコン", "スマートフォン" ]
        "500":
          description: "Error"
          content:
            application/json:
              schema:
                type: object
                required:
                  - code
                  - message
                properties:
                  code:
                    description: "エラーコード"
                    type: integer
                    example: 99
                  message:
                    description: "エラーメッセージ"
                    type: string
                    example: "failed.."

2. モックサーバーの​起動

Prsim専用コマンドの他に、npmやyarn、dockerを用いた構築が可能です。
今回はdockerを利用して、下記コマンドにてモックサーバーの起動を行います。

docker run --init --rm -v $(pwd):/tmp -p 4010:4010 stoplight/prism:4 mock -h 0.0.0.0 "sample.yaml"

3. リクエストの​実行

上記サンプルの場合、http://0.0.0.0:4010にてホストされているため、こちらにリクエストを実行します。

$ curl -X GET -k http://0.0.0.0:4010/products
{"for_sales_products":["カメラ","テレビ","洗濯機"]}

上記のような形で、exampleに設定した値が返却されます。

別のexampleレスポンスが欲しい場合は、以下のようにヘッダー内で指定を行います。

$ curl -X GET -H "Prefer:example=example-2" -k http://0.0.0.0:4010/products
{"for_sales_products":["掃除機","エアコン","スマートフォン"]}

または、ステータスコードでの指定も可能です。

$ curl -X GET -H "Prefer:code=500" -k http://0.0.0.0:4010/products
{"code":99,"message":"failed.."}

さい​ごに

このように、API仕様書から簡単にモックサーバーの構築が可能であり、ちょっとした結合テスト等にも大変重宝されるツールであるかと思います。
モックサーバー構築の手間を省き、工数の短縮等に繋がれば幸いです。


\シェアをお願いします!/
  • X
  • Facebook
  • LINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム