Optionale Web API-Parameter

7

Ich habe einen Controller mit folgender Signatur:

%Vor%

Ich rufe diese Methode mit folgenden URIs auf:

  • ~ / api / products / filter? apc = AA & xpc = BB
  • ~ / api / products / filter? sku = 7199123

Der erste URI funktioniert ohne Probleme. Der zweite hat eine seltsame Nebenwirkung. Auch wenn die Standardwerte für apc und xpc null sind, wenn sie nicht angegeben werden, sind die Parameter tatsächlich ihre Namen. Ich kann das überwinden, indem ich die zusätzliche Logik hinzufüge:

%Vor%

Dies scheint ein Hack zu sein und wäre problematisch, wenn der übergebene Wert jemals dem Parameternamen entspricht.

Gibt es eine Möglichkeit, die Route ohne diesen Nebeneffekt zu definieren?

    
Josh 07.07.2016, 15:06
quelle

2 Antworten

21

Ich habe es herausgefunden. Ich habe ein schlechtes Beispiel benutzt, das ich in der Vergangenheit gefunden habe, wie man die Abfragezeichenfolge den Methodenparametern zuordnet.

Falls jemand anderes es benötigt, um optionale Parameter in einer Abfragezeichenfolge zu haben, wie zum Beispiel:

  • ~ / api / products / filter? apc = AA & xpc = BB
  • ~ / api / products / filter? sku = 7199123

würden Sie verwenden:

%Vor%

Es scheint seltsam zu sein, Standardwerte für die Methodenparameter zu definieren, wenn diese Typen bereits einen Standardwert haben.

    
Josh 07.07.2016, 15:51
quelle
3

Sku ist ein Int, kann nicht standardmäßig auf "sku" gesetzt werden. Bitte überprüfen Sie Optionale URI-Parameter und Standardwerte

    
Petre T 07.07.2016 15:24
quelle