13
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

swagger(OpenAPI)でかんたんmockデバッグ

Last updated at Posted at 2018-10-02

概要

Swagger3.0(OpenAPI3.0)を使って簡単にmockを立ててデバッグしていきます。
NodeJSとかも使いません※ので、手軽にできるかと思います。

※ コードジェネレータを使う場合でも、OnlineEditor(https://editor.swagger.io/) からやれば、NodeJSとかは必要ありません。

既にSwagger2.Xで運用してる場合

https://openapi-converter.herokuapp.com/
こちらでコンバートしてください。
現在(2018/9)Swagger3.0(OpenAPI3.0)がrc版となっているので、ぼちぼち対応し始めても良いのではないでしょうか?

用意するもの

VSCode

スクリーンショット 2018-09-05 14.32.24.png https://code.visualstudio.com/

公式のSwaggerEditorも有るのですが、重いし、操作性が悪いのでVSCodeをオススメします。
プラグインとして以下もインストールしてください。

  • openapi-lint
  • openapi-viewer
  • YAML Support by Red Hat

APIsprout

スクリーンショット 2018-09-05 14.03.12.png https://github.com/danielgtaylor/apisprout

簡単にmockを立てるためのツールです。
goの環境入ってればgo getでinstallできますが、以下の方法でもできるようです。(未検証)

YAMLを用意する

すでにある場合や、自動生成されている場合はスキップしてください

書き方はここに載っています。
https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.1.md

最初から全部読まず、こちらからコピペしていけば良いと思います。
https://github.com/OAI/OpenAPI-Specification/tree/master/examples/v3.0

mockのresponseとなる値を入れる

mockデバッグをする際、各パラメータのexampleがそのまま値となって入ってくるので
こちらを参考に値をいれてください。
https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.1.md#exampleObject

こんなかんじでjsonをペタッと貼ったものをexampleにもできます。
スクリーンショット 2018-09-05 14.07.03.png
できれば公式の参考コードみたいに、パラメータごとに書いたほうが良いのですが
使い捨て前提みたいな使い方をする場合、SwaggerUIのresponseをコピって整形もアリです。

SwaggerUIで確認

VSCodeでYAMLを開いた状態で

  1. ⇧⌘P
  2. OpenAPI:Preview

で表示できます。
YAMLに見慣れてくると、SwaggerUIでは
responseのjsonを確認したり、curlのコマンドを生成するときに開くくらいになるかと思います。

APIsproutでmock立ち上げ

以下のコマンドを実行するだけです

$ apisprout [YAMLファイルのパス]

完成!!
デフォルトのポートは8000です。

13
15
2

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
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?