How to define Swagger 2.0 JSON to populate default body parameter object in Swagger UI?

前端 未结 2 1695
悲&欢浪女
悲&欢浪女 2021-01-13 23:44

Our current deployment patterns require me to manually write my swagger json output that will be consumed by the Swagger-based UI in use at my company. I\'d like the json I

相关标签:
2条回答
  • 2021-01-13 23:59

    To have example values, you just have to add an "example" property where needed:

    exampleDefinition:
      type: object
      description: Request details for Example Definition
      properties:
        action:
          type: string
          description: Specifies the action to be taken
          example: An action value
        applyToBase:
          type: string
          description: >-
            A boolean value that defines the behaviour of the request against the base
          example: An apply to base value
        addOnIDs:
          type: string
          description: The identifiers for the add-ons
          example: an ID
    

    Unfortunately the online editor don't propose them but SwaggerUI does:

    0 讨论(0)
  • 2021-01-13 23:59

    To populate default values to be used when clicking on the "Try this operation" you just need to add the 'default' parameter for the properties in the definition. This works in the online editor:

    {
       "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",
                   "default": "The default Action"
                },
                "applyToBase":{
                   "type":"string",
                   "description":"A boolean value that defines the behaviour of the request against the base",
                   "default": "0"
                },
                "addOnIDs":{
                   "type":"string",
                   "description":"The identifiers for the add-ons",
                   "default": "The default Add-On"
                }
             },
             "required":[
                "action",
                "applyToBase",
                "addOnIDs"
             ]
          }
       }
    }
    

    ```

    0 讨论(0)
提交回复
热议问题