APIの設計

Web API the good parts エンドポイントの基本的な設計 覚えやすく、どんな機能を持つURIなのかがひと目でわかる 短くて入力しやすいURI 人間が読んで理解できるURL 大文字小文字が混在していないURI 改造しやすい(Hackableな)URI サーバー側のアーキテクチャが反映されていないURI どんなソフトウェア、言語を利用しているのか。 ディレクトリやシステム構成がどうなっているのか。 ルールが統一されたURI リソースにアクセスするための設計の注意点 複数形の名詞を利用する 利用する単語に気をつける スペースやエンコードを必要とする文字を使わない 単語をつなげる必要がある場合はハイフンを利用する リソースの一覧取得のエンドポイントが検索を兼ねる。 絞り込み検索はパラメーターを設定する。 検索に相対位置を利用する問題点 データ数が膨大になるとpageやoffsetを指定されていると「先頭から何件目か」を調べるために先頭から数を数える処理が行われるため遅くなる。 また、更新頻度が高いデータの場合データに不整合が生じる。 絶対位置でデータを問題点 絶対位置指定とは、オフセットで相対位置を指定する代わりに、これまで取得した最後のデータのIDや時間を記録しておいて、「このIDより前のもの」や「この時刻より古いもの」と言った指定を行う方法。 配列とフォーマット オブジェクトで配列を包むメリット レスポンスデータが何をしていものかがわかりやすくなる レスポンスデータをオブジェクトに統一することができる。 セキュリティ上のリスクを避けることができる トップれべるが配列であるJSONは、JSONインジェクションに対するリスクが大きくなる。 続きがある場合どうデータを返すべきか 例えば20件データを返すためには最大21件の取得を行ってみて、実際に21件取得できれば、 「hasNext」といった名前で結果を含めてあげれば良い。

July 9, 2021