gpt4 book ai didi

spring - 使用开放 API 配置设置全局参数?

转载 作者:行者123 更新时间:2023-12-02 10:01:49 25 4
gpt4 key购买 nike

我正在使用 Spring Boot REST OpenAPI 3 规范。在此示例中,我希望全局设置我想要在向每个端点发出请求时传递的 header (Custom-Header-Version=v1)。

现在的问题是我有 100 个 REST 端点,对于每个端点,我需要继续添加 @Parameter(in = ParameterIn.HEADER ..... ,这个配置,而不是我想全局设置它。如果我们可以在 OpenAPI 中做到这一点,有什么办法吗?

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

@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;
}
}

最佳答案

你可以尝试下面的代码。 ouled saber

在上述代码中添加了 .example("v1")
@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 时我的情况如下

Image from swagger ui

关于spring - 使用开放 API 配置设置全局参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60006991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com