Nach HATEOAS Prinzipien, die jeder besagt, sollte Hyperlink sein, was ist der beste Weg, um Links zu modellieren, die Ressource Zustand ändern?HATEOAS - Wie Modell Link-Beziehungen, die den Zustand ändern
Lassen Sie sich klassisches Beispiel mit Aufträgen übernehmen:
{
id : 12,
state: 'pending',
...,
links: [
...,
{
rel: 'cancel',
href: '/orders/12/cancel'
},
...
]
}
Ich bin nicht totall glücklich mit dieser „/ Abbrechen“ Teil - ich würde viel besser fühlen, wenn ich „PUT“ Anfrage senden konnte mit Inhalt:
{
status:'cancelled'
}
Aber wie stelle ich das mit "href" Attribut im Abschnitt Links dar? Ich möchte die verfügbaren Aktionen dort darstellen, da zB das Abbrechen einer Bestellung nicht immer möglich ist (Status 'abgeschlossen').
Eine Möglichkeit wäre, URL wie '/ orders/12? Action = cancel' zu verwenden, wie es sich anfühlt wie RPC-Ansatz und dass mir etwas fehlt.
Eine weitere Möglichkeit, die wahrscheinlich schönsten wäre zu haben Verbindungen wie das aussieht:
{
rel: 'cancel',
href: '/orders/12/',
type: 'PUT',
values: {
state: 'cancelled'
}
}
Diese Lösung fühlt sich vielleicht ein wenig ausführlich.
Irgendwelche Ideen, wie man das anmutig behandelt? Vielleicht hat jemand schon ähnliches "Problem" gelöst?