Wie definieren Swagger 2.0 JSON zu füllen Standard-Körper-parameter-Objekt in Swagger-UI?
Unserer aktuellen Bereitstellung von mustern verlangen, mich manuell zu schreiben, meine swagger json-Ausgabe, die verbraucht wird, durch die Swagger-basierte Benutzeroberfläche im Einsatz in meinem Unternehmen. Ich würde gerne die json-ich Schreibe zu bieten "default" - Werte zum Auffüllen der Swagger-UI für alle Eingabe-Felder, einschließlich des Körpers input-parameter. Mein Körper-parameter ist ein referenziertes Objekt, wie unten zu sehen. Wie kann ich definieren, der zurückgegeben swagger JSON, automatische Auffüllen der body-Teil der Anfrage, wenn die "Versuchen Sie den Vorgang" geklickt?
Beispiel Swagger spec, der hat keine Standard - /Beispiel-Daten gefüllt, in der Swagger-UI ist unten.
{
"swagger":"2.0",
"info":{
"description":"Example API Description",
"title":"Example Title",
"version":"v3.0"
},
"tags":[
{
"name":"v3"
}
],
"consumes":[
"application/json"
],
"produces":[
"application/json"
],
"paths":{
"/v3/api/{subscriptionID}/example":{
"post":{
"tags":[
"v3"
],
"description":"This API will do something",
"consumes":[
"application/json"
],
"produces":[
"application/json"
],
"parameters":[
{
"name":"Accept",
"in":"header",
"description":"The Accept request-header field can be used to specify the media types which are acceptable for the response. If not provided, the default value will be application/json",
"required":false,
"default":"application/json",
"type":"string"
},
{
"name":"Content-Type",
"in":"header",
"description":"The MIME type of the body of the request. Required for PUT, POST, and PATCH, where a request body is expected to be provided.",
"required":true,
"default":"application/json; charset=utf-8",
"type":"string"
},
{
"name":"company_locale",
"in":"header",
"description":"The desired language as spoken in a particular region preference of the customer of this particular transaction. Consists of two lower case language",
"required":true,
"default":"en_US",
"type":"string"
},
{
"name":"originatingip",
"in":"header",
"description":"The originating ip address of the calling device or browser.",
"required":true,
"default":"100.100.10.1",
"type":"string"
},
{
"name":"transaction_id",
"in":"header",
"description":"The transaction identifier for this invocation of the service. ",
"required":true,
"default":"1e2bd51d-a865-4d37-9ac9-c345dc59119b",
"type":"string"
},
{
"name":"subscriptionID",
"in":"path",
"description":"The unique identifier that represents the subscribed portfolio of products.",
"required":true,
"default":"1e2bd51d",
"type":"string"
},
{
"name":"body",
"in":"body",
"description":"The body of the request",
"required":true,
"schema":{
"$ref":"#/definitions/exampleDefinition"
}
}
],
"responses":{
"200":{
"description":"OK",
"headers":{
"transaction_id":{
"type":"string",
"default":"de305d54-75b4-431b-adb2-eb6b9e546013",
"description":"The identifier for the service transaction attempt."
}
}
}
}
}
}
},
"definitions":{
"exampleDefinition":{
"type":"object",
"description":"Request details for Example Definition",
"properties":{
"action":{
"type":"string",
"description":"Specifies the action to be taken"
},
"applyToBase":{
"type":"string",
"description":"A boolean value that defines the behaviour of the request against the base"
},
"addOnIDs":{
"type":"string",
"description":"The identifiers for the add-ons"
}
},
"required":[
"action",
"applyToBase",
"addOnIDs"
]
}
}
}
Habe ich getestet, diese json-bei http://editor.swagger.io/#/, indem Sie auf File->Paste JSON...
. Ich dann auf "Try this operation"
scrollen Sie nach unten und beobachten Sie, dass die Werte von meinem Körper-parameter nicht ausgefüllt sind - das ist, was ich möchte zu ändern.
Dank im Voraus für etwaige Vorschläge.
InformationsquelleAutor Gabe | 2016-11-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Beispiel Werte, die Sie gerade Hinzugefügt haben, um ein "Beispiel" - Eigenschaft nötig:
Leider ist der online-editor nicht, schlägt Sie, aber SwaggerUI:
InformationsquelleAutor Arnaud Lauret
Auffüllen default-Werte verwendet werden, wenn Sie auf den "Versuchen Sie, diese operation", die Sie gerade brauchen, um hinzuzufügen, 'default' parameter für die Eigenschaften in der definition. Dies funktioniert im online-editor:
``
example
Schlüsselwort (wie in Arnaud Lauret Antwort), nichtdefault
.default
hat eine andere Bedeutungen, es ist ein Attribut von optionalen Feldern.+1 Helen tatsächlich aus irgendeinem Grund die Swagger-UI zumindest für Swagger 2.0, auto-Auffüllen von Standardwerten in Parametern, die nicht
in: body
so, obwohl technisch das ist nicht die Verwendung der Schlüssel, diese Antwort ist gültig. Und diese ältere version von Open API-Spezifikation und UI ist immer noch die Verwendung in services wie 3scale zum Beispiel.InformationsquelleAutor Alienari