Stellen Sie sich vor, Sie haben zwei Einheiten, Spieler und Team , in denen Spieler mehreren Teams angehören können. In meinem Datenmodell habe ich eine Tabelle für jede Entität und eine Verknüpfungstabelle, um die Beziehungen aufrechtzuerhalten. Hibernate kann damit gut umgehen, aber wie kann ich diese Beziehung in einer RESTful-API verfügbar machen?
Ich kann mir ein paar Möglichkeiten vorstellen. Erstens könnte jede Entität eine Liste der anderen enthalten, sodass ein Spielerobjekt eine Liste der Teams enthält, zu denen es gehört, und jedes Teamobjekt eine Liste der Spieler, die dazu gehören. Um einen Spieler zu einem Team hinzuzufügen, POSTEN Sie einfach die Darstellung des Spielers an einen Endpunkt, z. B. POST /player
oder POST, /team
mit dem entsprechenden Objekt als Nutzlast der Anforderung. Dies scheint mir das "RESTful" zu sein, fühlt sich aber etwas komisch an.
/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'
}
Die andere Möglichkeit, dies zu tun, besteht darin, die Beziehung als eigenständige Ressource herauszustellen. /playerteam/team/{id}
Um eine Liste aller Spieler in einem bestimmten Team anzuzeigen, können Sie ein GET oder ähnliches durchführen und eine Liste der PlayerTeam-Entitäten zurückerhalten. Um einen Spieler zu einem Team hinzuzufügen, POST /playerteam
mit einer entsprechend erstellten PlayerTeam-Entität als Nutzlast.
/api/team/0:
{
name: 'Boston Celtics',
logo: '/img/Celtics.png'
}
/api/player/20:
{
pk: 20,
name: 'Ray Allen',
birth: '1975-07-20T02:00:00Z',
team: '/api/team/0'
}
/api/player/team/0/:
[
'/api/player/20',
'/api/player/5',
'/api/player/34'
]
Was ist die beste Vorgehensweise dafür?