2014-09-25 19 views
9

Dies ist die Beschreibung eines bestimmten Parameters ich habe:Swagger: Ist es möglich, einen Operationsparameter konstant/schreibgeschützt zu machen?

{ 
    "name": "myParam", 
    "description": "My param description", 
    "required": true, 
    "paramType": "query", 
    "type": "string", 
    "defaultValue":"myValue" 
} 

Der default ist der einzige Wert der Parameter haben kann, so ist es eine Möglichkeit, dies zu erklären? Im Zusammenhang mit dem Swagger-Ui muss das Textfeld des Parameters schreibgeschützt sein. Ich benutze Swagger 1.2.

Dank

+0

Warum möchten Sie Parameter definieren, die nicht geändert werden können? – fox

Antwort

11

Der richtige Weg, dies wäre zu erklären:

{ 
    "name": "myParam", 
    "description": "My param description", 
    "required": true, 
    "paramType": "query", 
    "type": "string", 
    "enum": [ "myValue" ] 
} 

Die "Enum" Eigenschaft setzt die möglichen Werte. Sobald Sie einen einzelnen Wert festgelegt haben, ist dies der einzige Wert, der verwendet werden kann und der in der Benutzeroberfläche zur Auswahl verfügbar ist.

+0

Danke für die Antwort! Das funktioniert sehr gut, wenn der Typ String ist, was aber in anderen Fällen passiert, zum Beispiel bool? Ich könnte es als String mit dem Wert "true" oder "false" deklarieren, aber es wird nicht sehr elegant aussehen, wenn ich daraus eine Client-Bibliothek erzeuge. Irgendwelche Ideen? – DeZot

+1

Das hängt von der Version der Swagger-Spezifikation ab, die Sie verwenden. In 1.2 und davor war "enum" nur für String-Werte verfügbar. In 2.0 ist "enum" für alle Primitiven verfügbar, so dass Sie es für Booleans, Zahlen usw. verwenden können. – Ron

Verwandte Themen