More Related Content Similar to REST API のコツ (20) REST API のコツ10. LSUDsとは
・Large Set of Unknown Developers
・不特定多数のユーザーに提供するAPI
例:FaceBookAPI, TwitterAPI
・ユーザーの要求に最適化したAPIを
実装することは不可能なので、
データの種類別にエンドポイントを定義する傾向にある
12. SSKDsとは
・Small Set of Known Developers
・特定のシステムのみで利用する専用のAPI
例:自社サービス、社内システム
・用途が決まっているので、
データの種類よりも画面別、アクション別に
エンドポイントを定義する傾向にある
一般的にAPIというと LSUDs のイメージが強いので、
DBを抽象化したAPIを作りたがる人もいるが、
リソース指向のリソースはDBのテーブル単位とは限らない
リソースとは利用者の要求を満たすデータ
1画面の表示に必要なデータの集合体もリソースになる
13. SSKDsとは
・1画面1API , 1アクション1API が基本
ボトルネックになる通信回数を最小限にする
クライアント側が管理するAPIを最小限にする
ただし、無理に1画面1APIにする必要はない
サービスの仕様に合ったAPIを実装するのが大事
・必要な情報が決まっているので、
取得データの細かいオプション指定は不要だが、
クライアントの必要とするデータを
最適化して返す必要がある
14. LSUDs を SSKDs に変換する
APIサーバを用意するアーキテクチャもある
LSUDs API
APIサーバ
SSKDs API
ブラウザ
IOS
Android
40. ・レスポンスのトップレベルにオブジェクト名を付ける
何のデータであるかが分かりやすい
[
{id:10, score:10},
{id:11, score:11},
{id:12, score:12},
]
↓
{
users:[
{id:10, score:10},
{id:11, score:11},
{id:12, score:12},
]
}
46. application/json
・個人的に Web API の POST/PUT といえばこれ
・最近はSPAが主流だから
基本こっちを利用すると思うけど、
意外と知らない人が多い印象?
・body部分にJSON形式でデータを格納する
・FWだと get_body().parseJson() とかで
パースしてから取得する必要があるかも
get_param() 的なやつでは取れない印象