繁体   English   中英

我们可以为同一个端点同时实现@pathparam和@queryparam吗

[英]Can we implement both @pathparam and @queryparam for the same endpoint

我正在自学REST API开发。 作为此过程的一部分,我将创建一个Java Web服务器。 但是,我被困在某些东西上,并且不知道如何进行。

我有一个名为/users的端点,用户可以通过该端点GET数据。 但是,我想实现寻找用户并限制返回的用户数量的选项。 例如:

  • GET /users/300应该返回ID为300的用户。
  • 如果我得到查询GET /users?count=10 ,我希望将返回限制为10个用户。

为此,我决定使用@QueryParam@PathParam 问题是:我可以在同一方法中使用它们吗?

例如:

@Path("/User") 
@Produces({"application/json"})
public List<User> getUsers() {
    // ...
}

@GET
@Path("/{id}")
public JSONObject getUserwithId(@PathParam("id") int id) {
    return jsonObjectwithId;
}

@Path("?count")
public JSONObject getUserwithCount(@QueryParam("count") int count) {
    return noOfusers;
}

我想这是否可能。

是的,我之前在我亲自处理过的Web服务上已经做到了。 这并不常见,因为REST接口通常通常不具备所需的复杂性。 但是,完全允许同一方法使用@QueryParam@PathParam 我看到您正在使用Jersey。 基于此线程 ,如果您实际上正在使用Jersey 1.x,则在当前遇到问题时可能需要升级。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM