gpt4 book ai didi

java - 多个 GET 方法匹配 : select most specific

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:11:51 25 4
gpt4 key购买 nike

我有一个如下所示的网络服务:

@Path("/ws")
public class Ws {
@GET public Record getOne(@QueryParam("id") Integer id) { return record(id); }
@GET public List<Record> getAll() { return allRecords(); }
}

我的想法是我可以调用:

  • http://ws:8080/ws?id=1获取特定记录
  • http://ws:8080/ws 获取所有可用记录

然而,当我使用第二个 URL 时,第一个 @GET 方法被调用时带有一个空的 id

有没有一种方法可以在不使用不同路径的情况下实现我想要的?

我认为这可以通过 Spring 使用 @RequestMapping(params={"id"})@RequestMapping 注释来实现。方法,但我不能在该项目中使用 Spring。

最佳答案

由于路径相同,您无法将其映射到不同的方法。如果使用 REST 样式映射更改路径

@Path("/ws")
public class Ws {
@GET @Path("/{id}") public Response getOne(@PathParam("id") Integer id) { return Response.status(200).entity(record(id)).build(); }
@GET public Response getAll() { return Response.status(200).entity(allRecords()).build(); }

那么你应该使用:

  • http://ws:8080/ws/1获取特定记录
  • http://ws:8080/ws 获取所有可用记录

关于java - 多个 GET 方法匹配 : select most specific,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26816496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com