我有一个定义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 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
加起来,在java中你可以在你的swagger配置类中添加一个bean来做到这一点:
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
UiConfiguration uiConfig()
{
return new UiConfiguration( null, UiConfiguration.Constants.NO_SUBMIT_METHODS );
}
}
基本上它会把supportedSubmitMethods
放到[]
。
您需要通过“head”值扩展DEFAULT_SUBMIT_METHODS。
@EnableSwagger2
@Configuration
public class SwaggerConfig {
@Bean
UiConfiguration uiConfiguration() {
return new UiConfiguration( null, new String[] {"get", "post", "put", "delete", "patch", "head"} );
}
}