🎃

ネストが深い場合のAPI設計 [WIP]

2023/12/07に公開

意見を頂けると喜びます。

前提

下記のようなリレーション。

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

メリット

デメリット

  • フラットではない。リソースが増えるとネストが一層深くなる。

パターン3「」

Discussion