在Swagger UI中没有HEAD方法的“试一试”按钮

问题描述 投票:4回答:3

我有一个定义HEAD操作的Swagger规范:

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

在Swagger UI v.2中,此HEAD操作没有“试用”按钮。如何为HEAD添加“试一试”?

swagger swagger-ui swagger-2.0
3个回答
5
投票

您可以尝试Swagger UI 3.0 - HEAD在此版本中默认“试用”。

如果您使用Swagger UI 2.0,默认情况下会禁用HEAD。您需要在index.html中的Swagger UI初始化代码中的supportedSubmitMethods列表中显式启用它:

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

顺便说一下,HEAD响应中的schema并不是真的有用,因为HEAD不应该返回实际的身体 - 只有标题。您应该将200响应更改为:

responses:
  200:
    description: success response

1
投票

加起来,在java中你可以在你的swagger配置类中添加一个bean来做到这一点:

@Configuration
@EnableSwagger2
public class SwaggerConfig { 

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

基本上它会把supportedSubmitMethods放到[]


1
投票

您需要通过“head”值扩展DEFAULT_SUBMIT_METHODS。

    @EnableSwagger2
    @Configuration
    public class SwaggerConfig  {

        @Bean
        UiConfiguration uiConfiguration() {
            return new UiConfiguration( null, new String[] {"get", "post", "put", "delete", "patch", "head"} );
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.