woshidan's loose leaf

ぼんやり勉強しています

アプリ側で使っていてAPIについて思ったこと

今度自分が書くとき用に。

  • 副作用のある操作がなく参照/バリデーション(登録などややこしい処理の場合)ができる
    • ユーザーの情報を確認したら一部情報が更新されるタイプのAPI,やや辛い
  • 一覧ではなく単体でデータの参照ができる
    • だいたいリソースは単体で404か確認したくなるものなので、やや辛い
  • 同じ形式と人間が思うデータが同じ型の変数で返ってくる(日付はDate型のStringかLong型)
    • クライアント側で対応できなくもないけれど、やや辛い
  • 更新と作成のときに渡すパラメータが同じである
    • クライアント側で対応できなくもないけれど、罠感があってやや辛い
  • 同じモデルのJSONは同じ形式をしている
    • クライアント側で他のモデルから補ったりすることになるので、やや辛い
  • やたら?や特殊文字がパラメータ名に入らない
    • 事前に対応できるかどうか調査してから
  • 一覧のデータはページネーション用のAPIが含まれていて欲しい
    • 一括で取得するのは厳しいデータ量があることをいつも想定しておく
  • ソートに使うパラメータがレスポンスに含まれる(サーバ側にリクエストを送り、サーバ側でソートしてから返す、というのでは応答が遅く感じるため)
  • テストのためでいいので、作成できるものは削除できるようにしておいて欲しい
    • アカウント登録など、手動でテストしたいときとても面倒...
    • デバッグ用画面やデバッグ用でいいので追加/削除の対になるAPIは欲しい...

Roarみたいなのを使えば更新等の時の入力と出力揃えて、うまくできそうだけど、まあね、 実際は入力と出力のパラメータは綺麗に一致しなかったりするよね、みたいなのはあるけど、 入力同士、出力同士は揃ってないとめんどくさい。

ruby-rails.hatenadiary.com