当前位置: 首页 > 知识库问答 >
问题:

验证Quarkus Microprofile中的REST参数

高运诚
2023-03-14

下面的代码是Quarkus Microprofile API应用程序中控制器的一部分。

    @GET
    @Path("/limit/{limit}/offset/{offset}")
    @Produces(MediaType.APPLICATION_JSON)
    public Response paginatedAccounts(
            @Parameter(
                description = "Number of records to be returned.",
                required = true,
                schema = @Schema(type = SchemaType.INTEGER))
            @PathParam("limit") int limit,
            @Parameter(
                 description = "The starting number of record, zero based.",
                 required = true,
                 schema = @Schema(type = SchemaType.INTEGER))
             @PathParam("offset") int offset)
    {
        return Response
                .ok(this.accountService.getPaginatedAccounts(limit, offset))
                .build();
    }

它返回分页的帐户列表。

用户调用API时,提供了错误的“限制”或“偏移”类型,即:

就像它应该的那样?

共有1个答案

羊光辉
2023-03-14

这是(JAX-RS规范的)设计

https://docs.oracle.com/cd/e19798-01/821-1841/6 nmq2cp1v/index.html明确提到:

如果URI路径模板变量不能转换为指定的类型,JAX-RS运行时将向客户端返回HTTP 400(“Bad Request”)错误。如果@PathParam注释不能强制转换为指定的类型,JAX-RS运行时将向客户端返回HTTP 404(“未找到”)错误

 类似资料:
  • 参数验证功能 1 是基于 JSR303 实现的,用户只需标识 JSR303 标准的验证 annotation,并通过声明 filter 来实现验证 2。 Maven 依赖 <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1.0.

  • 我正在使用Spring Boot和[jackson-module-jsonSchema](https://github.com/fasterxml/jackson-module-jsonSchema)构建一个REST API,用于生成JSON模式。我正在寻找一种最好的方法来验证到达我的APIendpoint(Spring控制器)的请求JSON有效负载,该有效负载是根据为公开资源定义的已定义JSON

  • 我一直试图将Spring验证器添加到Spring数据Rest项目中。 我跟着并通过这个链接设置了“入门”应用程序:http://spring.io/guides/gs/accessing-data-rest/ ...现在,我正试图通过以下文档添加自定义PeopleValidator:http://docs.spring.io/spring-data/rest/docs/2.1.0.RELEASE/

  • 我有一个与 Rest Assured 中的响应正文验证相关的问题。让我们假设,我有一个像json这样的响应体。 我需要检查: 如果图书部分包含儿童类型 如果一本儿童类书籍的自动名称为Eric 第一个断言可以是这样的: 但是我需要检查它的作者的名字是否是威廉。有没有办法使用jsonPath检查它? 我假设,我可以做反序列化(例如,x. List

  • 环境:Java,泽西,jackson,汤卡特。 我有一个rest服务从客户端获取JSON输入。我想验证输入,如果它是JSON,然后它是JSON,然后JSON输入中的键是预期的或不是。如果是,那么它将产生HTTP400-bad请求。 比如-- 例如-非json输入如 null 我的代码适用于前面提到的情况2,但我希望它也适用于情况1。当非JSON输入存在时,我希望它将凭据对象设置为null,然后我可

  • 我有一个简单的springboot应用程序和一个Rest api。我想验证请求参数不为null/空。我将json转换成一个java对象,并从这里开始验证它们是否包含所有必需的字段,并且不为null或不为空。(对象没有保存到db)我目前正在使用javax验证方法,但是没有成功。 我还有一个包含的要素类,我需要验证(所有字段均为必填字段,而不是空或空)