我们可以创建相同的 GET URI 但具有不同的查询参数吗?
例如,我有两个 REST GET URI:
/questions/ask/?type=rest
/questions/ask/?byUser=john
现在,REST 服务不会将两个 GET 方法识别为单独的,而只考虑 1 个声明为第一个的 GET 方法。
- 为什么会这样?
- 有什么方法可以使两个 GET 方法具有不同的查询参数吗?
如果您能引用任何资源,我们将不胜感激。
因为一个resource是由其唯一标识的PATH(而不是通过它的参数)。您定义的两个资源具有相同的 PATH。
@Path("/questions/ask")
根据JSR-311规格:
此类方法称为子资源方法,被视为正常的方法
资源方法(参见第 3.3 节),除了方法仅被调用
对于与通过串联创建的 URI 模板匹配的请求 URI
资源类的 URI 模板与
方法.
由于您的数据模型包含两种不同的资源,我建议使用不同的路径创建两种休息方法:
@Path("/questions/ask/type")
@Path("/questions/ask/user")
这是 RESTful 方式,因为一个 URI 代表一个且仅一个资源,并且不应该存在重载。如果一个 URI 代表多个资源,则意味着您在某个地方弄错了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)