Jax-RS请求映射到使用@DefaultValue和@QueryParam的操作

问题描述 投票:0回答:1

我想知道jax-rs(或Jersey作为实现)在将@DefaultValue@QueryParam一起使用时将客户端请求映射到实际操作。

假设您在资源中有以下操作,一个返回所有资源,另一个返回all并具有自定义视图;

@Path(/v1)
public class MyResource {

    @GET
    @Path(/my-resource)
    public Response getAllResources(){
       ...
    }

    @GET
    @Path(/my-resource)
    public Response getAllResources(@QueryParam("view") @DefaultValue("simple") String view){
       ...
    }
}

在这种情况下,如果我将服务称为/v1/my-resource,那么映射将如何在内部工作以及选择哪个操作?

如果在规范中有任何解释,我很感激。

谢谢,

Tugem。

java jersey jax-rs restful-url
1个回答
0
投票

正如Paul正确提到的,对于相同的资源和Web方法(以及可接受的媒体类型),您不应该有多于1个方法。对于JAX-RS来说,这是正确的,而不仅仅是一些实现。参见JAX-RS规范:

3.7.2请求匹配 ... 如果有多个最大元素,则实现应该报告警告,并以依赖于实现的方式选择其中一种类型。

© www.soinside.com 2019 - 2024. All rights reserved.