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

  • 29
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

概要

  • アプリの開発を進めるには、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が良さそう