Wir sind gerade dabei, kleinere Dienstleistungen von unseren Monolithen zu streiten. Unsere Domain ist einem Ticketing-System sehr ähnlich. Wir haben uns entschieden, mit dem Löschungsprozess der Domain zu beginnen.Wie modelliert man eine CANCEL-Aktion auf REST-basierende Weise?
Unser Cancel-Service hat als einfachen Endpunkt "Cancel", der die ID des Tickets annimmt. Intern rufen wir die ID ab, führen einige Vorgänge durch, die mit dem Abbrechen zusammenhängen, und aktualisieren den Status der Entität im Geschäft. Aus der Perspektive des Ladens besteht nur ein paar Eigenschaften zwischen einem stornierten Ticket und einem Live-Ticket.
Nach was ich gelesen habe, scheint PATCH das richtige Verb zu sein, um in diesem Fall verwendet zu werden, da nur eine einfache Eigenschaft in der Ressource aktualisiert wird.
PATCH /api/tickets/{id}
Payload {isCancelled: true}
Aber IsCancelled ist keine tatsächliche Eigenschaft in der Entität. Ist es fair, Eigenschaften in der Nutzlast zu senden, die nicht Teil der Entität sind, oder sollte ich an eine andere Form der Modellierung dieser Anforderung denken? Ich möchte nicht die gesamte Entität als Teil der Nutzlast senden, da sie groß ist.
Ich habe überlegt, eine neue Ressource CancelledTickets zu erstellen, aber in unserer Domäne hätten wir niemals ein GET auf stornierte Tickets. Daher blieb weg, eine neue Ressource zu erstellen, die von mit
Jede Hilfe wäre sehr
Dank K
Wie ich verstehe RESTful zu sein bedeutet, dass wir Roy Fieldigs Einschränkungen einhalten müssen. Die Einhaltung dieser Standards bedeutet, dass jeder Kunde, der den Dienst nutzt, bestimmte Annahmen über den Dienst treffen kann. Das heißt, ich verstehe auch, dass Funktionalität mehr wichtig ist als Konformität. Gedanken? –