2017-09-05 3 views
-2

zurückzugeben Ich arbeite an einer neuen API und ich versuche zu entscheiden, ob es eine gute Praxis wäre, die Liste der verfügbaren Optionen sowie die ausgewählte Option einzuschließen, wenn Zurückgeben einer Entität aus der DatenbankIst es gute Praxis, die verfügbaren Optionen für die Entität

Nehmen Sie zum Beispiel

class car 
{ 
    int Id; 
    Type Type; 
    List<Type> Types; 
} 

class Type 
{ 
    int Id; 
    string Name; 
} 

Ich habe dies in beiden Richtungen getan gesehen, so dass ich frage mich, ob es eine Präferenz war.

Dank

+0

Normalerweise würde ich erwarten, dass jede API irgendeine Dokumentation hat, in der mögliche Optionen aufgelistet und beschrieben werden. Das Abrufen eines Datensatzes würde diese Information normalerweise nicht zurückgeben. Sie * könnten * einen anderen API-Endpunkt haben, nur um Listen von Optionen zurückzugeben. – David

+0

machen Sie zusätzliche Methoden, um die zusätzlichen Metadaten zu erhalten, die jemand benötigt. Geben Sie den Leuten nicht "extra" Zeug, es sei denn, es besteht ein definitives Bedürfnis. Sonst sammeln Sie einfach Antworten aus anderen Gründen als "einige Leute wollen oder wollen vielleicht nicht" –

+0

Was meinen Sie mit "die Liste der verfügbaren Optionen", genau? Was hat dieser Code damit zu tun? Was ist eine "Option"? – CodeCaster

Antwort

1

Ihr Entwurf falsch ist, lassen Sie sich mit einem Beispiel sehen:

Wir haben zwei Auto-Objekte car1 und car2, und die Typen sind type1, type2, type3. Das Ergebnis Objekt, wenn Sie die Autoliste Abfrage ist:

  • {car1, type1, {type1,type2,type3}}
  • {car2, type2, {type1,type2,type3}}

Können Sie die Redundanz bei der Rückkehr die gleiche Liste zweimal sehen? Da ist dein Designfehler.

Sie müssen nur die Liste des Typs übergeben, wenn es wirklich notwendig ist, sonst senden Sie doppelte Daten.

0

Für mich wäre es kein guter Entwurf, eine Liste von Fahrzeugtypen zurückzugeben. Wenn man Auto als Einheit betrachtet, wird das Auto von einer bestimmten Art sein. Und natürlich wäre Redundanz für wenig Wert, wie @DiegoS erwähnt.

Möglicherweise verfügen Sie über eine separate API, um bei Bedarf alle gültigen Typen für ein Auto zurückzugeben.

Verwandte Themen