Edited at

[Swagger] OpenAPI3.0 で記述したAPIドキュメントからapisproutを使ってモックサーバーを構築する


Intro

OpenAPI(Swagger)でAPI定義を記述をすると、簡単にAPIドキュメントを作成し、API仕様をコード管理できるメリットがあります。

もう一つのメリットとして記述したAPI定義からAPIのモックサーバーも簡単に生成することができます。モックサーバーを開発の初期段階に簡単に用意できることで、ドキュメントファーストな開発ができます。(以下、開発フローのイメージです)


参考リンク


APIモック(mock)サーバーを作る

swagger-codegen でコードを生成してモックサーバーを立てる方法もありますが、今回は以下のAPI定義から apisprout を使いモックサーバーを立ててみます。


openapi.yml

openapi: 3.0.0

info:
version: 1.0.0
title: Swagger sample
paths:
/users:
get:
summary: Usersを取得するAPIです。
responses:
'200':
description: HTTPステータスコード200と以下の情報を含むJSONオブジェクトを返します。
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
example: 1234567


Usage


go get

apisprout は Goで作られているので go get コマンドでインストールも可能です。

起動方法はこれだけ。 apisprout opeapi.yml めちゃ簡単ですね。

go get github.com/danielgtaylor/apisprout

apisprout opeapi.yml

🌱 Sprouting Swagger sample on port 8000

curl localhost:8000/users

{
"user_id": 1234567
}


Docker

docker pull danielgtaylor/apisprout

docker run -p 8000:8000 -v $FULLPATH/openapi.yml:/openapi.yml danielgtaylor/apisprout /openapi.yml

🌱 Sprouting Swagger sample on port 8000

curl localhost:8000/users

{
"user_id": 1234567
}


最後に

OpenAPI(Swagger)で記述することで、APIドキュメントやモックサーバーを簡単に用意することができました。APIドキュメントファーストの開発をすることで、開発の生産性もあがりそうです。

簡単に導入し試すことができるので機会があれば、トライしてみてください。