RESTful APIで多対多の関係を処理する方法は?
PlayerとTeamの 2つのエンティティがあり、プレーヤーが複数のチームに所属しているとします。私のデータモデルでは、各エンティティのテーブルと、関係を維持するための結合テーブルがあります。Hibernateはこれをうまく処理できますが、この関係をRESTful APIでどのように公開できますか? いくつかの方法を考えることができます。最初に、各エンティティに他のエンティティのリストを含めることができるため、Playerオブジェクトには所属するチームのリストがあり、各チームオブジェクトには所属するプレーヤーのリストがあります。そのため、プレーヤーをチームに追加するには、プレーヤーの表現をエンドポイントにPOSTします。たとえば、POST /playerやPOSTのよう/teamに、リクエストのペイロードとして適切なオブジェクトを指定します。これは私にとって最も「RESTful」なようですが、少し変な感じがします。 /api/team/0: { name: 'Boston Celtics', logo: '/img/Celtics.png', players: [ '/api/player/20', '/api/player/5', '/api/player/34' ] } /api/player/20: { pk: 20, name: 'Ray Allen', birth: '1975-07-20T02:00:00Z', team: '/api/team/0' } これを行うために私が考えることができるもう1つの方法は、それ自体がリソースとして関係を公開することです。そのため、特定のチームのすべてのプレーヤーのリストを表示するには、GET /playerteam/team/{id}などを実行して、PlayerTeamエンティティのリストを取得します。プレーヤーをチームに追加するに/playerteamは、適切にビルドされたPlayerTeamエンティティをペイロードとしてPOST します。 /api/team/0: { name: 'Boston Celtics', logo: '/img/Celtics.png' } /api/player/20: { pk: 20, name: 'Ray Allen', birth: …