如何使用 ”?”没有得到路径休息?
How to use "?" no get Path Rest?
我正在 java、netbeans 中开发一个休息服务器。
我有我的 GET 请求:
//myip/application/v1/cardapio/id=1
@Stateless
@Path("v1/cardapio")
public class CardapioResource {
@GET
@Produces("application/json")
@Path("id={id}")
public String getCardapio(@PathParam("id") int id) {
JsonArray array = (JsonArray) gson.toJsonTree(ejb.findById(id));
JsonObject obj = new JsonObject();
obj.add("dados", array);
return obj.toString();
}
}
它工作正常。
但我想做不同的事情,正如我在其他示例中看到的那样,我想用“?”标记变量的开头。
例如://myip/application/v1/cardapio/?id=1
@Stateless
@Path("v1/cardapio")
public class CardapioResource {
@GET
@Produces("application/json")
@Path("?id={id}")
public String getCardapio(@PathParam("id") int id) {
JsonArray array = (JsonArray) gson.toJsonTree(ejb.findById(id));
JsonObject obj = new JsonObject();
obj.add("dados", array);
return obj.toString();
}
}
因此错误 404,找不到页面。
你不能,之后?签署它的查询参数而不是路径参数
您可以使用@QueryParam("id")
您在"other examples"中看到的只是URL查询部分的正常用法。只需将它与 @Queryparam
一起使用
@Stateless
@Path("v1/cardapio")
public class CardapioResource {
@GET
@Produces("application/json")
@Path("/") // can be removed actually
public String getCardapio(@QueryParam("id") int id) {
JsonArray array = (JsonArray) gson.toJsonTree(ejb.findById(id));
JsonObject obj = new JsonObject();
obj.add("dados", array);
return obj.toString();
}
}
此处您将 getCardapio
映射到 v1/cardapio/
,您将尝试从查询字符串中获取 id
,因此
Ex: //myip/application/v1/cardapio/?id=1
就可以了。
您还可以使用
@RequestParam("id") int id
我正在 java、netbeans 中开发一个休息服务器。 我有我的 GET 请求:
//myip/application/v1/cardapio/id=1
@Stateless
@Path("v1/cardapio")
public class CardapioResource {
@GET
@Produces("application/json")
@Path("id={id}")
public String getCardapio(@PathParam("id") int id) {
JsonArray array = (JsonArray) gson.toJsonTree(ejb.findById(id));
JsonObject obj = new JsonObject();
obj.add("dados", array);
return obj.toString();
}
}
它工作正常。
但我想做不同的事情,正如我在其他示例中看到的那样,我想用“?”标记变量的开头。
例如://myip/application/v1/cardapio/?id=1
@Stateless
@Path("v1/cardapio")
public class CardapioResource {
@GET
@Produces("application/json")
@Path("?id={id}")
public String getCardapio(@PathParam("id") int id) {
JsonArray array = (JsonArray) gson.toJsonTree(ejb.findById(id));
JsonObject obj = new JsonObject();
obj.add("dados", array);
return obj.toString();
}
}
因此错误 404,找不到页面。
你不能,之后?签署它的查询参数而不是路径参数
您可以使用@QueryParam("id")
您在"other examples"中看到的只是URL查询部分的正常用法。只需将它与 @Queryparam
@Stateless
@Path("v1/cardapio")
public class CardapioResource {
@GET
@Produces("application/json")
@Path("/") // can be removed actually
public String getCardapio(@QueryParam("id") int id) {
JsonArray array = (JsonArray) gson.toJsonTree(ejb.findById(id));
JsonObject obj = new JsonObject();
obj.add("dados", array);
return obj.toString();
}
}
此处您将 getCardapio
映射到 v1/cardapio/
,您将尝试从查询字符串中获取 id
,因此
Ex: //myip/application/v1/cardapio/?id=1
就可以了。
您还可以使用
@RequestParam("id") int id