🎃
ネストが深い場合のAPI設計 [WIP]
意見を頂けると喜びます。
前提
下記のようなリレーション。
StaffはOrganizerに所属し、Venue、Spot、Deviceに権限を持つ。
パターン1「クエリに頼ったフラット設計」
例
GET /venues
GET /spots?venueId={venueId}
GET /devices?venueId={venueId}&spotId={spotId}
メリット
- クエリ文字列で検索範囲を絞るような形
- フラットな構成なのでフロントから使いやすい
デメリット
- 「特定のリソースのみの権限」というのを表現するのが難しい。
- 何を受け取れるのか直感的ではない。
パターン2「パスパラメータに依存」
例
/venues
/venues/:id/spots
/venues/:id/spots/:id/devices
メリット
デメリット
- フラットではない。リソースが増えるとネストが一層深くなる。
Discussion