🐙

Restful APIでJoinを表現するリスク

2020/10/12に公開

リソース認可制御が難しくなる

特定のユーザーに自分の情報へのAPIは公開しているが、ユーザーに紐づくアクセス履歴へのAPIは公開していない場合。
APIによる動的なJOINを可能としていた場合、以下のようなリクエストによって意図していないテーブルへのアクセスを許可してしまうリスクがある。

そのため全てのAPIエンドポイントに対して動的なJOINを許可する場合はリソースへのアクセス制御が非常に難しくなる。
/users/{id}?join=access-history

キャッシュの再利用性が低くなる

また、以下のAPI呼び出しと複数のEndpointからリソースを呼び出せるようになり、キャッシュの再利用性が落ちてしまうという問題があります。
/access-histories?where[userId]=1

What are best practices for REST nested resources?

Discussion