アプリ側で使っていてAPIについて思ったこと
今度自分が書くとき用に。
- 副作用のある操作がなく参照/バリデーション(登録などややこしい処理の場合)ができる
- ユーザーの情報を確認したら一部情報が更新されるタイプのAPI,やや辛い
- 一覧ではなく単体でデータの参照ができる
- だいたいリソースは単体で404か確認したくなるものなので、やや辛い
- 同じ形式と人間が思うデータが同じ型の変数で返ってくる(日付はDate型のStringかLong型)
- クライアント側で対応できなくもないけれど、やや辛い
- 更新と作成のときに渡すパラメータが同じである
- クライアント側で対応できなくもないけれど、罠感があってやや辛い
- 同じモデルのJSONは同じ形式をしている
- クライアント側で他のモデルから補ったりすることになるので、やや辛い
- やたら?や特殊文字がパラメータ名に入らない
- 事前に対応できるかどうか調査してから
- 一覧のデータはページネーション用のAPIが含まれていて欲しい
- 一括で取得するのは厳しいデータ量があることをいつも想定しておく
- ソートに使うパラメータがレスポンスに含まれる(サーバ側にリクエストを送り、サーバ側でソートしてから返す、というのでは応答が遅く感じるため)
- テストのためでいいので、作成できるものは削除できるようにしておいて欲しい
Roarみたいなのを使えば更新等の時の入力と出力揃えて、うまくできそうだけど、まあね、 実際は入力と出力のパラメータは綺麗に一致しなかったりするよね、みたいなのはあるけど、 入力同士、出力同士は揃ってないとめんどくさい。