Macht REST immer sinn?

Dieses Thema Macht REST immer sinn? im Forum "Web Tier" wurde erstellt von eskimo328, 30. Jan. 2015.

Thema: Macht REST immer sinn? Webanwendung basiert auf JBoss AS + JAX-RS + AngularJS Funktionen der Anwendung sind u.a.: Ticket erstellen...

  1. 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 (Text):

    #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: 30. Jan. 2015
  2. Vielleicht hilft dir das Grundlagen Training weiter --> *Klick*
  3. 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.