LoginSignup
32
33

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-08-31

概要

  • アプリの開発を進めるには、APIの仕様 + API仕様通りのレスポンスを返すモックがあると捗る
  • モックを簡単に効率良く作成する方法を調査

調査・検証

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

長所

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

短所

  • 地味に大変
  • 実際に使うときが面倒(ローカルか開発サーバ)
  • 使いまわせない
  • 時間がかかる
  • 仕様変更ごとにコードを修正

2.JSONSchemaからの生成

長所

  • JSON SchemaでAPIを設計することでfieldの型など仕様が明確になる。
  • APIのレスポンスが正しいかValidationするのに使える。
    • サーバ、クライアントどちらでもテストに使用できる
  • ドキュメントを自動生成できる。

短所

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

参考

3.Apiary

長所

  • 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が良さそう
32
33
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
32
33