Forum: PC-Programmierung Auftrennung Front und Backend bei REST API


von Holger K. (holgerkraehe)


Lesenswert?

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.

: Bearbeitet durch User
von Jim M. (turboj)


Lesenswert?

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.

von Holger K. (holgerkraehe)


Lesenswert?

Danke für deine Antwort.

Hier wären dann aber die Daten redundant.
Entspricht die Cleancode?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.