Java 如何在子资源类中使用@Api swagger注释?
在我的项目中,我有一些根据Jersey框架指南正确实施的子资源 但是,我在生成openapi.json文件(由swagger maven插件生成)时遇到了一个问题。 特别是,我希望能够在实现子资源的类上使用Java 如何在子资源类中使用@Api swagger注释?,java,jersey,jersey-2.0,swagger-2.0,swagger-maven-plugin,Java,Jersey,Jersey 2.0,Swagger 2.0,Swagger Maven Plugin,在我的项目中,我有一些根据Jersey框架指南正确实施的子资源 但是,我在生成openapi.json文件(由swagger maven插件生成)时遇到了一个问题。 特别是,我希望能够在实现子资源的类上使用@Apiswagger注释来应用一些属性,例如授权 问题是,如果我在子资源类上使用@Api注释,swagger不仅将这些类视为子资源,还将它们视为资源。结果是,在openapi.json文件中,为每个子资源生成相同的资源(不应该存在) 根资源: @Path("root") @Produces(
@Api
swagger注释来应用一些属性,例如授权
问题是,如果我在子资源类上使用@Api注释,swagger不仅将这些类视为子资源,还将它们视为资源。结果是,在openapi.json文件中,为每个子资源生成相同的资源(不应该存在)
根资源:
@Path("root")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Api(value = "/root", authorizations = {
@Authorization(value = "auth", scopes = {})
})
public class ExperienceResource {
@Path("/sub_a")
public SubResourceA getSubA() {
return new SubResourceA();
}
@Path("/sub_b")
public SubResourceB getSubB() {
return new SubResourceB();
}
}
次级资源:
@Path("root")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Api(value = "/root", authorizations = {
@Authorization(value = "auth", scopes = {})
})
public class ExperienceResource {
@Path("/sub_a")
public SubResourceA getSubA() {
return new SubResourceA();
}
@Path("/sub_b")
public SubResourceB getSubB() {
return new SubResourceB();
}
}
@Api(authorizations = {
@Authorization(value = "auth", scopes = {})
})
public class SubResourceA {
@GET
...
}
我也尝试过使用@Api(value=”“)
或@Api(value=“sub_a”)
,但它们不起作用,也不会让事情变得更糟。
显然,如果我删除@Api注释,一切都会正常工作,但我必须逐个操作应用properties操作
有什么建议吗?解决方案很简单。为了确保实现子资源的类被swagger视为子资源(而不是资源),只需在
@Api
注释中添加属性hidden=true
@Api(hidden = true, authorizations = {
@Authorization(value = "auth", scopes = {})
})
public class SubResourceA {
@GET
...
}
解决办法很简单。为了确保实现子资源的类被swagger视为子资源(而不是资源),只需在
@Api
注释中添加属性hidden=true
@Api(hidden = true, authorizations = {
@Authorization(value = "auth", scopes = {})
})
public class SubResourceA {
@GET
...
}