gpt4 book ai didi

spring-boot - 如何在 Springfox v3 中指定全局 header 参数的允许值?

转载 作者:行者123 更新时间:2023-12-05 00:44:51 27 4
gpt4 key购买 nike

我尝试将 springfox 的 swagger ui 配置从 2.9.2 版本迁移到 3.0.0 版本。

2.9.2 版中,我可以执行类似的操作来指定全局 header 允许使用的值:

@Bean
public Docket swaggerDocket() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
[...]
.build()
.groupName("Some API")
.directModelSubstitute(LocalDate.class, java.sql.Date.class)
.useDefaultResponseMessages(false)
.globalOperationParameters(
Arrays.asList(new ParameterBuilder()
.name("Environment")
.modelRef(new ModelRef("string"))
.allowableValues(new AllowableListValues(List.of("A","B","C"), "string"))
.parameterType("header")
.required(true)
.build()));
}

但在 3.0.0 版 “globalOperationParameters” 被标记为已弃用。我尝试使用新的 "globalRequestParameters" 来获得与旧版本相同的结果:

@Bean
public Docket swaggerDocket(TypeResolver typeResolver) {
return new Docket(DocumentationType.SWAGGER_2)
.select()
[...]
.build()
.groupName("Some API")
.directModelSubstitute(LocalDate.class, java.sql.Date.class)
.useDefaultResponseMessages(false)
.globalRequestParameters(List.of(createRequestParameter("Environment", true)));
}

private RequestParameter createRequestParameter(String headerName, boolean required) {
return new RequestParameterBuilder()
.name(headerName)
.required(required)
.query(q -> q.model(modelSpecificationBuilder -> modelSpecificationBuilder.scalarModel(ScalarType.STRING)))
.in(ParameterType.HEADER)
.build();
}

有没有办法添加允许值列表

最佳答案

在弄乱了 intelliJ 自动完成功能后发现了这一点。在查询中,使用模型,然后使用 enumerationFacet 方法。我会保持快速简单的:

在您的 createRequestParameter 中使用代码:

final String bestCookie = "Peanut Butter Chocolate Chunk";
new RequestParameterBuilder()
.in("path")
.name("Best Cookies")
.description("Put your favorite cookie here")
.query(q ->
q.model(m -> m.scalarModel(ScalarType.STRING))
.defaultValue(bestCookie)
.enumerationFacet(e -> e.allowedValues(
new AllowableListValues(
List.of(bestCookie, "There's no other best cookies",
"You heard what I said"),
"string")))
)
.required(true)
.build();

我会包含下拉菜单的图片,但我没有发布它们的声誉。

关于spring-boot - 如何在 Springfox v3 中指定全局 header 参数的允许值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65422489/

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