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

kx7yvsdv  于 2023-02-04  发布在  其他
关注(0)|答案(3)|浏览(205)

我有一个定义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添加“试用”按钮?

pod7payv

pod7payv1#

您可以尝试 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不应该返回一个实际的主体--只返回头部。

responses:
  200:
    description: success response
qni6mghb

qni6mghb2#

在java中,你可以在swagger config类中添加一个bean来完成这个任务:

@Configuration
@EnableSwagger2
public class SwaggerConfig { 
                               
    @Bean
    UiConfiguration uiConfig() {
      return new UiConfiguration(null, UiConfiguration.Constants.NO_SUBMIT_METHODS);
    }
}

基本上,它会将supportedSubmitMethods放置到[]

ki0zmccv

ki0zmccv3#

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

@EnableSwagger2
    @Configuration
    public class SwaggerConfig  {

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

相关问题