2017-01-11 2 views
2

Ich bin auf der Suche nach einer Möglichkeit, einen festen Parameter zu jeder Anfrage hinzufügen, die der Client an den Server sendet.Swagger-Client, Hinzufügen eines festen Parameters zur Anfrage

Zum Beispiel: param1=false. Der Standardwert für den Server ist param1=true, aber ich möchte, dass der generierte Client bei jeder Anforderung false sendet. Ist das irgendwie möglich?

Ich habe versucht:

  • default: false - das ist nicht dokumentiert für diesen Fall
  • defaultValue: false zu arbeiten - die nur scheint für die UI
  • enum: -false zu arbeiten - die auch nur scheint zu funktionieren für die UI

bearbeiten

Wenn ich erzeugen Java-Code mit

- name: param1 
     in: query 
     type: boolean 
     required: true 
     enum: [true] 

Der generierte Code sieht wie folgt aus:

private com.squareup.okhttp.Call routeGetCall(Boolean param1){ 
     Object localVarPostBody = null; 

     // verify the required parameter 'param1' is set 
     if (param1 == null) { 
      throw new ApiException("Missing the required parameter 'param1' when calling routeGet(Async)"); 
     } 
     ... more code ... 

Param1 wird nie wahr zu sein gezwungen. Ich kann es sogar falsch setzen. Daher scheint Enum nur für die UI zu arbeiten?

Antwort

1

Während dann ist es möglich, einen konstanten Parameter mit nur einem möglichen Wert zu haben, wie ?param1=true:

 parameters: 
     - name: param1 
      in: query 
      type: boolean 
      required: true 
      enum: [true] 

, wenn ein Parameter hat mehrere mögliche Werte wie true/false (wie in Ihrem Beispiel), die spec kann keinen bestimmten Wert für den Parameter erzwingen. Es liegt an dem Client zu entscheiden, welcher Wert verwendet werden soll.

Das heißt, der generierte Client-Code muss geändert werden, um einen bestimmten Parameterwert zu verwenden.

+0

Danke für Ihre Antwort. Ihr bereitgestelltes Beispiel funktioniert nicht für mich, da die Enumeration keinen Einfluss auf den generierten Code hat, siehe meine aktualisierte Frage. – Robin

Verwandte Themen