Java Spring boot和springfox-swagger2-$ref值必须符合RFC3986百分比编码URI-提供解决方案
如果您使用的是springfox-swagger2库,那么在泛型类型方面可能会遇到问题。在使用菱形括号的情况下,Swagger将生成无效规范,导致Swagger编辑器中出现验证错误(“$ref值必须是符合RFC3986的百分比编码URI”) 您得到的错误可能如下所示: 路径处的语义错误。/v1/car.post.parameters.0.schema.$ref $ref值必须是符合RFC3986的百分比编码URI 跳到45号线Java Spring boot和springfox-swagger2-$ref值必须符合RFC3986百分比编码URI-提供解决方案,java,spring-boot,swagger-ui,swagger-2.0,Java,Spring Boot,Swagger Ui,Swagger 2.0,如果您使用的是springfox-swagger2库,那么在泛型类型方面可能会遇到问题。在使用菱形括号的情况下,Swagger将生成无效规范,导致Swagger编辑器中出现验证错误(“$ref值必须是符合RFC3986的百分比编码URI”) 您得到的错误可能如下所示: 路径处的语义错误。/v1/car.post.parameters.0.schema.$ref $ref值必须是符合RFC3986的百分比编码URI 跳到45号线 我在下面找到的问题的解决方案 默认情况下,带有泛型的类型将标记为“\
我在下面找到的问题的解决方案 默认情况下,带有泛型的类型将标记为“\u00ab”()和逗号。这可能是问题的东西,如招摇过市codegen。您可以通过实现自己的GenericTypeNamingStrategy来覆盖此行为。例如,如果您希望将列表编码为“ListOfString”,并将映射编码为“MapOfStringAndObject”,则可以在插件自定义期间将forCodeGeneration自定义选项设置为true:
docket.forcode生成(真|假)代码>
下面是一个添加了更改的摘要配置示例:
@Configuration
@EnableSwagger2
public class CommonConfiguration {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.useDefaultResponseMessages(false)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.enableUrlTemplating(false)
.forCodeGeneration(true);
}
}
问一个问题,然后自己回答是可以的。从您发布的内容来看,不清楚原始配置和摘要的哪一部分是解决方案。@opticyclic已接受,因此更新了答案。谢谢我对你的问题投了赞成票,但我的意思是你把你的问题作为一个问题,然后你在下面添加解决方案作为一个答案,否则搜索时看起来就没有答案了。