- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用Quarkus开发一组JAX-RS服务。我还使用OpenAPI / Swagger-UI注释对它们进行注释,以便于生成API文档。我可以像这样注释我的GET
服务...
@Path("/{communityIdentifier}")
@GET
@Operation(summary = "Get community details", description = "Get detailed information about a community")
@APIResponses({
@APIResponse(responseCode = "200", description = "The community details", content = @Content(schema = @Schema(ref = "community"))),
@APIResponse(name = "401", responseCode = "401", description = "Authentication required"),
@APIResponse(name = "403", responseCode = "403", description = "Permission denied - you do not have access to access this resource", content = @Content(schema = @Schema(ref = "baseError"))),
@APIResponse(name = "404", responseCode = "404", description = "Resource not found", content = @Content(schema = @Schema(ref = "baseError"))),
@APIResponse(name = "500", responseCode = "500", description = "Internal service error", content = @Content(schema = @Schema(ref = "baseError"))) })
@Timed(name = "getCommunityTimer")
@Counted(name = "getCommunityCount")
public Response getCommunity(
@PathParam("securityRealm") @Parameter(name = "securityRealm", description = "The security realm name", required = true) String securityRealmName,
@PathParam("communityIdentifier") @Parameter(name = "communityIdentifier", description = "The community identifier", required = true) String communityIdentifier) {
// Stuff
}
securityRealm
和
communityIdentifier
参数的信息。现在,我试图以类似方式创建
POST
和
PUT
方法,并且遇到了问题。
PUT
/
POST
请求包含许多表单参数,因此我将它们封装到一个对象中,并使用
@BeanParam
注释该方法。我的表单对象如下所示:
public class CommunityRequestForm extends AbstractRequestForm {
private static final long serialVersionUID = 6007695645505404656L;
@FormParam("description")
private String description = null;
@FormParam("name")
private String name = null;
public String getDescription() {
return description;
}
public String getName() {
return name;
}
public void setDescription(String description) {
this.description = description;
}
public void setName(String name) {
this.name = name;
}
}
POST
方法如下所示:
@Path("/")
@POST
@Consumes({ MediaType.APPLICATION_FORM_URLENCODED })
@Operation(summary = "Create a community", description = "Creates a new community within a security realm")
@APIResponses({
@APIResponse(responseCode = "201", description = "The community details", content = @Content(schema = @Schema(ref = "community"))),
@APIResponse(name = "401", responseCode = "401", description = "Authentication required"),
@APIResponse(name = "403", responseCode = "403", description = "Permission denied - you do not have access to access this resource", content = @Content(schema = @Schema(ref = "baseError"))),
@APIResponse(name = "404", responseCode = "404", description = "Resource not found", content = @Content(schema = @Schema(ref = "baseError"))),
@APIResponse(name = "500", responseCode = "500", description = "Internal service error", content = @Content(schema = @Schema(ref = "baseError"))) })
public Response createCommunity(
@PathParam("securityRealm") @Parameter(name = "securityRealm", description = "The security realm name", required = true) String securityRealmName,
@BeanParam CommunityRequestForm communityForm) {
// Stuff
}
name
和
description
参数,因此它们由OpenAPI / Swagger-UI记录。我尝试将参数注释和定义更改为如下所示:
@FormParam("description")
@Parameter(name = "description", required = true, style = ParameterStyle.FORM)
private String description = null;
public Response createCommunity(
@PathParam("securityRealm") @Parameter(name = "securityRealm", description = "The security realm name", required = true) String securityRealmName,
@Parameter(style = ParameterStyle.FORM) @BeanParam CommunityRequestForm communityForm)
@BeanParam
注释的对象?还是根本不支持这种方法?
最佳答案
我知道他们通过此PR:https://github.com/smallrye/smallrye-open-api/pull/138改进了SmallRye OpenAPI 1.1.5中的所有功能。
Quarkus 0.22.0仍使用1.1.3。我们已经更新了master中的1.1.8,因此即将发布的0.23.0将进行更新。
您可以尝试使用Quarkus master分支(只需使用mvn clean install -DskipTests -DskipITs
构建它,然后将版本更改为999-SNAPSHOT
)。希望情况会更好。
关于java - OpenAPI/Swagger-UI注释和@BeanParam,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57998793/
在一个项目中,我将一些方法从内联 @QueryParam 参数列表迁移到 @BeanParam 中,我注意到对延迟有显着且无法解释的影响。 我不确定是什么内部机制导致了这个问题,因为它似乎不仅仅是新的
在 Jersey 中,有 @BeanParam 注释,我可以使用它将请求参数映射到 bean 属性。 在 Spring 中,我只能找到 @RequestBody ,它显然适用于请求正文,而不适用于请求
我正在使用Quarkus开发一组JAX-RS服务。我还使用OpenAPI / Swagger-UI注释对它们进行注释,以便于生成API文档。我可以像这样注释我的GET服务... @Path("
我正在尝试将 @BeanParam 与 RESTEasy 一起使用,以便我可以使用 swagger 文档。 我已经用@QueryParam 注释了我的POJO。 我已经成功地使用 POST 方法工作,
我正在尝试使用 swagger-maven-plugin 记录我的 api。 当我使用 @Parameter 注释路由参数时,只要未使用 @BeanParam 注释,它就会在 openapi 生成的文
目前我正在 MessageBodyReader 中呈现命令对象,但我希望能够在 @BeanParam 中执行此操作: 注入(inject)一个派生自 SecurityContext 的字段(是否有地方
我们正在使用 Spring 和 Apache cxf。 对于以下示例代码,我遇到异常。这让我想知道:我可以在同一个方法签名中使用两个 BeanParam 注释/bean 吗? import javax
在 Jersey API 文档中,有一个使用 Form 封装表单参数 POST 到服务的示例: Client client = ClientBuilder.newClient(); WebTarget
我想将所有 @QueryParams 放在 @BeanParam 对象中,并在那里进一步记录。这可能吗? 最佳答案 目前不支持,但您可以开工单 here看看能不能加 关于swagger - swagg
我想在 jersey 2 中使用 POJO 作为 @BeanParam: public class GetCompaniesRequest { /** */ private stat
我们已经在生产环境中运行 Jersey 一段时间了,最近注意到我们开始泄漏内存。挖掘时我们发现从HK2 2.3.0开始在HK2类(org.jvnet.hk2.internal.ServiceLoc
我在 Controller 类中定义了一个 REST 服务操作,如图所示: @POST @Consumes({MediaType.APPLICATION_JSON}) @Path("create")
我正在考虑处理查询/请求参数的两个选项: 将各个参数映射到相应的方法参数: @GET public String blah(@QueryParam("testParam") String testPa
我正在尝试使用 Swagger 来记录我的 Rest API。我想使用 @BeanParam 注释,但是 Swagger 将 bean 模型解释为单个 body。我已将我的 swagger 依赖项更改
我是一名优秀的程序员,十分优秀!