首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Quarkus Microprofile中验证REST参数

在Quarkus Microprofile中验证REST参数
EN

Stack Overflow用户
提问于 2021-04-06 14:41:43
回答 1查看 535关注 0票数 0

以下代码是应用程序中控制器的一部分。

代码语言:javascript
复制
    @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时,即:

http://[url]/[entity]/limit/zzz/offset/0

她收到"404 - Not“

如何验证参数“限制”和“偏移”,以便当用户提供错误类型(string for int)时,她会收到:

"400 -糟糕的请求“

应该是这样吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-06 17:23:48

这是由设计( JAX-RS规范)。

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66970838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档