社長BLOG
HOUOU JSONAPIモデル
- 2011-11-30 (水)
- 社長BLOG
HOUOUでは、スマートフォン進行のために、JSONAPIを整備しようと考えている。
APIはどんなふうにデザインするのが良いか?というメモ。
一人がすべてデザインする
ポイントその1。APIは実装も大事なだけど、何よりもデザインが大事。
各プラグインごとにバラバラにつくっていても良いAPIにはならないので、
主要なプラグインも含めたAPIを一人がデザインする。
使えるデータ構造
論理的に正しい、構造的に正規化されている。なんてことはAPIに取ってどうでもいい。
スマートフォンのフロントエンドから使いやすいことが何よりも重視される。
たとえば、
JSONのリクエスト結果に、Memberモデルに含まれていない画像のURLもセットにして送ってあげる。とかね。
このあたりはTwitterのAPIデザインがとにかく素晴らしい。いい感じでいろんなデータを連結して送ってくれる。
そのいい感じのサイズ感が絶妙である。
プラグインが増えたときどうするの?
問題なのはプラグインが増えたときに、そのAPIはどう対応するか?ということ。
それは、次のような形で対処しようと考えている。
APIのリクエストエントリポイントは統一する
投稿、リスト取得ぐらいのシンプルなAPIのエントリポイントは統一する。
API構造は アクティビティのupdate APIをベースにして、どのプラグイン向けのリクエストかメソッドタイプを追加できるイメージ。
レスポンスはバラバラでも構わない。利用するアプリ側ががんばって解釈する。
最初はルーズに対応しておいて、人気が出たプラグインのAPIは専用に整備していくというスタイルにする。
自動テストで品質管理
APIアクションは画面遷移を伴わないので、自動テストに向いている。
結果もJSONだから、結果比較が非常にしやすい。
APIの開発はテストケースとセットで行う。
このパートでは、人力のテストはほとんど必要なくなる。
※スマートフォンUIと組み合わせたパートでは必要