Auftrennung Front und Backend bei REST API

OP #6253943
Hallo zusammen

Folgendes Szenario:

Ich habe ein Backend welches mir folgende Supplier informationen 
liefert:
1
{"id":1,"name":"RS-Online","url":null,"stateId":1}

Nun möchte ich diese Daten im Fronend anzeigen lassen. Da macht sich 
jedoch eine stateId als Zahl nicht besonders gut. Daher möchte ich dort 
die ID durch einen Text ersetzen. Das Mapping von Text zu Id is 
ebenfalls über das Backend verfügbar.
1
{"id":1,"State":"Pending"}...

Nun stellt sich mir folgende Frage:

Ist es Aufgabe des backends, diese Verknüpfung durchzuführen und dem 
Frontend bereits ein Objekt in folgender Form zu liefern:
1
{"id":1,"name":"RS-Online","url":null,"State":"Pending"}

Oder sollte sich das Frontend diese Daten selbst zusammenbauen?

Falls es Aufgabe des Backends ist, dann gibt es noch folgendes Szenario:
Im Frontend wird nun ein neuer Supplier angelegt. In diesem Zuge kann 
nun auch der Status definiert werden. Dazu holt sich das Frontend alle 
möglichen Stati:
1
{"id":1,"State":"Pending"}...

Und zeigt den Text dazu an: Pending, Active etc...
z.B. in einem Dropdown.

Wenn nun der Benutzer den Datensatz an das Backend zur Eintragung 
sendet, was ist dann hier der "saubere" Weg?

Sendet das Frontend nun die ID des Status oder den Text?

Variante A:
1
{"name":"Neuer Supplier","url":null,"stateId":1}

Variante B:
1
{"name":"Neuer Supplier","url":null,"State":"Pending"}

Mir ist klar, dass alle Varianten technisch umsetzbar sind. Im Sinne von 
loser Kopplung und Clean-Code sowie Bestpractice hoffe ich jedoch auf 
ein paar Kommentare.

Vielen Dank für eure Antworten.
Holger K. schrieb:
> Sendet das Frontend nun die ID des Status oder den Text?
>
> Variante A:{"name":"Neuer Supplier","url":null,"stateId":1}
> Variante B:{"name":"Neuer Supplier","url":null,"State":"Pending"}

Beides:

:{"name":"Neuer Supplier","url":null,"stateId":1,"stateText":"Pending" }

Begründung: Die numerischen IDs sind leichter im Code zu nutzen, aber 
der (redundante) Text vereinfacht das Debugging. Bei JSON kann man 
überflüssige Felder normalerweise ganz einfach ignorieren.


Aus demselben Grunde übertragt man dann auch sowohl StateID als auch den 
sprechenden Text ans Frontend.  Wenn das Frondend die Vernküpfung machen 
muss wären das IMHO zwei Reoundtrips statt einem.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.