2014-09-25 3 views
9

Questa è la descrizione di un certo parametro che ho:Swagger: è possibile rendere costante/readonly un parametro di funzionamento?

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

Il defaultValue è l'unico valore del parametro può avere, quindi c'è un modo per dichiarare questo? Visto nel contesto di swagger-ui, ho bisogno che la casella di testo del parametro sia di sola lettura. Sto usando lo swagger 1.2.

Grazie

+0

Perché si desidera definire un parametro che non può essere modificato? – fox

risposta

11

il modo corretto di dichiarare questo sarebbe:

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

La proprietà "enum" imposta i valori possibili. Una volta impostato un singolo valore, questo è l'unico che potrebbe essere utilizzato e che sarebbe disponibile nell'interfaccia utente da cui l'utente può scegliere.

+0

Grazie per la risposta! Funziona molto bene quando il tipo è una stringa, tuttavia, cosa succede in altri casi, ad esempio bool? Suppongo che potrei dichiararlo come una stringa con valore "true" o "false", ma non sembrerà molto elegante se creo una libreria client da esso. Qualche idea? – DeZot

+1

Dipende dalla versione specifica Swagger che si utilizza. In 1.2 e prima di questo, "enum" era disponibile solo per i valori stringa. In 2.0, "enum" è disponibile per tutti i primitivi, quindi puoi usarlo per valori booleani, numeri e così via. – Ron