Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

No "Try it out" button for HEAD method in Swagger UI

I have a Swagger spec that defines a HEAD operation:

head:
  description: show flight exist or not.

  parameters:
    - name: flight_no
      in: path
      type: string
      description: Flight_no
      required: true
  produces:
    - application/json
    - application/xml

  responses:
    200:
      description: success response
      schema:
        type: array
        items:
          $ref: '#/definitions/Data'
    '404':
      description: flight does not exist

In Swagger UI v. 2, this HEAD operation has no "try it out" button. How can I add "try it out" for HEAD?

HEAD operation in Swagger UI

like image 894
Ravi Bhushan Avatar asked Mar 20 '17 12:03

Ravi Bhushan


People also ask

How do I get rid of try it out in Swagger?

3.10. 0+. This config can also disable "Try it out" selectively for specific HTTP methods. For example, supportedSubmitMethods: ["get", "head"] keeps "Try it out" only for GET and HEAD, but disables it for POST, PUT, PATCH, DELETE and other methods.

How do I load a Yaml file in Swagger UI?

To load your swagger specification yaml file you need to use a module able to convert yaml to json; for instance yamljs.


2 Answers

You can try Swagger UI 3.0 – HEAD has "try it out" by default in this version.

If you use Swagger UI 2.0, HEAD is disabled by default. You need to explicitly enable it in the supportedSubmitMethods list in the Swagger UI initialization code in index.html:

window.swaggerUi = new SwaggerUi({
  url: url,
  dom_id: "swagger-ui-container",
  supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch', 'head'],
  //                                                                   ^
  // ------------------------------------------------------------------┘


By the way, schema in a HEAD response is not really useful because HEAD is not supposed to return an actual body – only the headers. You should change the 200 response to:

responses:
  200:
    description: success response
like image 158
Helen Avatar answered Sep 19 '22 02:09

Helen


to add up, in java you can add a bean in your swagger config class to do that:

@Configuration
@EnableSwagger2
public class SwaggerConfig { 

    @Bean
    UiConfiguration uiConfig()
    {
      return new UiConfiguration( null, UiConfiguration.Constants.NO_SUBMIT_METHODS );
    }
}

Basically it will put supportedSubmitMethods to [].

like image 24
Sylhare Avatar answered Sep 18 '22 02:09

Sylhare