5

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

Helen
  • 87,344
  • 17
  • 243
  • 314
Ravi Bhushan
  • 942
  • 2
  • 11
  • 19

3 Answers3

6

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
Helen
  • 87,344
  • 17
  • 243
  • 314
2

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 [].

Sylhare
  • 5,907
  • 8
  • 64
  • 80
1

You need to extend DEFAULT_SUBMIT_METHODS by "head" value.

    @EnableSwagger2
    @Configuration
    public class SwaggerConfig  {

        @Bean
        UiConfiguration uiConfiguration() {
            return new UiConfiguration( null, new String[] {"get", "post", "put", "delete", "patch", "head"} );
        }
    }
tarasg
  • 86
  • 4