Edited at

効率の良いAPIモック作成について

More than 3 years have passed since last update.


概要


  • アプリの開発を進めるには、APIの仕様 + API仕様通りのレスポンスを返すモックがあると捗る

  • モックを簡単に効率良く作成する方法を調査


調査・検証


1.自分で仕様から書き起こす


長所


  • 好きな言語で書ける

  • 普段書かない言語を選択すればスキルアップ


短所


  • 地味に大変

  • 実際に使うときが面倒(ローカルか開発サーバ)

  • 使いまわせない

  • 時間がかかる

  • 仕様変更ごとにコードを修正


2.JSONSchemaからの生成


長所


  • JSON SchemaでAPIを設計することでfieldの型など仕様が明確になる。

  • APIのレスポンスが正しいかValidationするのに使える。


    • サーバ、クライアントどちらでもテストに使用できる



  • ドキュメントを自動生成できる。


短所


  • 書くのが大変


  • json_worldというRubyのDSLでJSON Schemaが書けるgemがある


参考


3.Apiary

https://apiary.io/


長所



  • API BlueprintとよばれるMarkDownの拡張言語で記述

  • レスポンスを定義するとエントリーポイントが用意されそのままMockになる


MSON



  • MSONを使うことでMarkDownでJSONレスポンスを書ける。


    • Markdown Syntax for Object Notationの略



  • ↓はApiaryでMSONを使ってAPIを定義したサンプル

### GET /mson_test


+
Response 200 (application/json)

+ Attributes
+ categories (array)
+ (object)
+ name: Category One (string) - Name of the category
+ (object)
+ test: aaaaa (string)

このように書くと以下のようにJSONのレスポンスに変換し、すぐに叩けるモックを用意してくれる。

{

"categories": [
{
"name": "Category One"
},
{
"test": "aaaaa"
}
]
}


  • 同時にJSON Schemaにも変換してくれる。

{

"type": "object",
"properties": {
"categories": {
"type": "array"
}
},
"$schema": "http://json-schema.org/draft-04/schema#"
}


短所


  • API BlueprintのSyntaxの学習コスト

  • 有料


参考


結論


  • Apiaryが良さそう