Skip to content

Spezifikation von REST APIs

mwiaterek edited this page Feb 27, 2019 · 8 revisions

RESTBucks Beispiel

restbucks

Abbildung: Beispiel RESTBucks

Vorgehensweise

Initial haben wir im Plenum das Beispiel Restbucks aus dem Vortrag REST Beyond the Obvious von Oliver Gerke analysiert und die vorgestellte "URI-Tabelle" betrachtet. Anschließend haben wir exemplarisch Use Cases betrachtet und diese in die fachlichen Vorgangsschritte zergliedert und wiederum in eine Reihenfolgebeziehung gebracht. Auf Grundlage dessen haben wir dann unsere eigene "URI-Tabelle" abgeleitet.

Diskussion

  • In unserem Nutzungskonzept gibt es keine konkreten Reihenfolgebeziehungen zwischen den fachlichen Geschäftsprozessen.

  • Heißt, die Fachprozesse im engeren Sinne bestehen nur aus einem bzw. einigen wenigen Vorgangsschritten. Dies fußt auf der Tatsache, dass in der Domäne „Ungewöhnliche Route draußen“ hauptsächlich Routen, Orte und Historische Lokationen verwaltet werden. Hierbei handelt es sich also primär um CRUD ähnliche Operationen.

  • Darüber hinaus haben wir uns gegen die Erstellung von URIs beispielsweise für das Value Object Lokation entschieden, da der Zugriff über die URIs der Aggregates Ort und Route erfolgen kann.

Mögliche Use Cases

Die Bezugsperson Dieter (mit der ID 251619) möchte die Route Weg zum Stadtpark der DVP Max editieren:

  1. Gib mir eine Liste aller DVPs die der Bezugsperson zugeordnet sind
  2. (Gib mir die DVP Max)
  3. Gib mir eine Liste aller Routen die der DVP Max zugeordnet ist
  4. (Gib mir die Route Weg zum Stadtpark)
  5. Ändere die Route Weg zum Stadtpark

API

Methode Resource Type URI Aktion Erläuterung HAL-Links
GET ReadDVP /dvp/{dvpId} DVP Abfragen Liefert die durch die ID referenzierte DVP
  • CreateRoute
  • ReadRouten
  • CreateOrt
  • ReadOrte
  • ReadLokationHistorie
    POST CreateRoute /routen/dvp/{dvpId} Route für DVP Anlegen Neue Route für die durch die ID referenzierte DVP anlegen
    • ReadRoute
      GET ReadRouten /routen/dvp/{dvpId} Routen für DVP Abfragen Liefert eine Liste aller Routen, die der DVP mit der spezifizierten ID zugeordnet sind
      • ReadRoute
        GET ReadRoute /routen/{routenId} Route Abfragen Liefert die Route mit der spezifizierten ID
        • UpdateRoute
        • DeleteRoute
          PUT UpdateRoute /routen/{routenId} Route Updaten Ändere die Route mit der spezifizierten ID
          • ReadRoute
            DELETE DeleteRoute /routen/{routenId} Route Löschen Lösche die Route mit der spezifizierten ID
            POST CreateOrt /orte/dvp/{dvpId} Ort für DVP Erstellen Neuen Ort für die durch die ID referenzierte DVP anlegen
            • ReadOrte
              GET ReadOrte /orte/dvp/{dvpId} Orte zu DVP Abfragen Liefert eine Liste aller Orte, die der DVP mit der spezifizierten ID zugeordnet sind
              • ReadOrt
                GET ReadOrt /orte/{ortId} Ort Abfragen Liefert den Ort mit der spezifizierten ID
                • UpdateOrt
                • DeleteOrt
                  PUT UpdateOrt /orte/{ortId} Ort Updaten Ändere den Ort mit der spezifizierten ID
                  • ReadOrt
                    DELETE DeleteOrt /orte/{ortId} Ort Löschen Lösche den Ort mit der spezifizierten ID
                    GET ReadLokationHistorie /historische-lokationen/{dvpId} Historische Lokationen einer DVP Abfragen Gibt eine Liste aller historischen Lokationen, die der DVP mit der ID x zugeordnet sind

                    Zustandsübergänge

                    0001

                    Abbildung: API für MS Route/Ort


                    Quelle

                    Abbildung RESTBuck Beispiel: http://olivergierke.de/2016/04/benefits-of-hypermedia/

                    Clone this wiki locally