Macht REST immer sinn?

Bitte aktiviere JavaScript!
Webanwendung basiert auf JBoss AS + JAX-RS + AngularJS

Funktionen der Anwendung sind u.a.:

  • Ticket erstellen
  • Ticket anzeigen: Alle details zu einem Ticket anzeigen
  • Ticket schließen: Ticket status wird geändert zusätzlich kann noch ein Kommentar eingegeben werden
  • Ticket zuweisen: Ticket Bearbeiter wird geändert zusätzlich kann noch ein Kommentar eingegeben werden. Server sendet E-Mail Benachrichtigung an neuen Bearbeiter
Die entsprechende RESTful API könnte einfach wie folgt aussehen:

Code:
#Ticket erstellen 
POST /tickets/

#Ticket anzeigen
GET  /tickets/:id 

# Ticket an neuen Mitarbeiter zuweisen
POST /tickets/:id/assign 

# Ticket schließen
POST /tickets/:id/close
Allerdings wäre das nicht ganz im Sinne von REST.

Wie würde das korrekt im Sinne von REST gemacht werden? Denn was mir nicht so ganz klar ist, ich könnte zwar mit einem POST /tickets/:id das Ticket ändern. Allerdings muss je nachdem was geändert wird, der Server unterschiedliche Verarbeitungen starten. Z. B. wenn der Bearbeiter geändert wird, wird zusätzlich eine E-Mail Benachrichtigung gesendet.
Oder es kommt auch drauf an, wer das Ticket erstellt. Wenn ein Mitarbeiter das Ticket erstellt, wird eine E-Mail Benachrichtigung an den Kunden versendet, wenn ein Kunde das Ticket erstellt, wird eine E-Mail Benachrichtigung an den Mitarbeiter gesendet.
 
Zuletzt bearbeitet:
Allerdings wäre das nicht ganz im Sinne von REST.
Was ist nicht im Sinne von REST? REST sagt nur aus, welches Verhalten erwartet wird, nicht wie die Implementation dahinter aussieht. GET fordert eine Ressource an, usw. Was aber nötig ist, um die GET-Anfrage auszuführen, ist nicht eingeschränkt (Mails schreiben, Hühner füttern, etc.). Man geht nur meistens davon aus, dass REST-Services zustandslos sind, also keine Werte oder Parameter in sich halten.
Übrigens: Das Erstellen eines Ticket wäre für mich auf den ersten Blick ein PUT-Befehl.
Überblickerweise kommt auch erst der Methodenname und dann die Parameter, also /tickets/assign/:id.
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben