使用Open API配置设置全局参数?

我正在使用Spring Boot REST OpenAPI 3规格。在此示例中,我希望全局设置Custom-Header-

Version=v1向每个端点发出请求时要传递的标头()。

现在的问题是,我有 ,对于每个端点,我需要继续添加@Parameter(in = ParameterIn.HEADER

.....,此配置,而我想在全局进行设置。有什么办法可以在OpenAPI中做到?

有什么方法可以从Spring doc ui中删除SmartBear徽标?

@RestController

@RequestMapping("/api")

@Tag(name = "contact", description = "the Contact API")

public class HelloController {

@Operation(summary = "Find Contacts by name", description = "Name search by %name% format", tags = {"contact"})

@ApiResponses(value = {

@ApiResponse(responseCode = "200", description = "successful operation", content = @Content(array = @ArraySchema(schema = @Schema(implementation = PersonDTO.class))))})

@Parameter(in = ParameterIn.HEADER, description = "Custom Header To be Pass", name = "Accept-version"

, content = @Content(schema = @Schema(type = "string", defaultValue = "v1", allowableValues = {"v1"}, implementation = PersonDTO.class)))

@GetMapping(value = "/contacts", headers = {"Custom-Header-Version=v1"})

public ResponseEntity<List<PersonDTO>> findAll(

@Parameter(description = "Page number, default is 1") @RequestParam(value = "page", defaultValue = "1") int pageNumber,

@Parameter(description = "Name of the contact for search.") @RequestParam(required = false) String name) {

return null;

}

}

回答:

您可以尝试以下代码。在上述代码中,通过以下方式添加了.example(“ v1”)ouled saber

@Component

public class GlobalHeaderOperationCustomizer implements OperationCustomizer {

@Override

public Operation customize(Operation operation, HandlerMethod handlerMethod) {

Parameter customHeaderVersion = new Parameter().in(ParameterIn.HEADER.toString()).name("Custom-Header-Version")

.description("Custom Header Version)").schema(new StringSchema()).example("v1").required(false);

operation.addParametersItem(customHeaderVersion);

return operation;

}

我有相同的要求,大摇大摆我变得像下面

图片来自swagger ui

以上是 使用Open API配置设置全局参数? 的全部内容, 来源链接: utcz.com/qa/431680.html

回到顶部