如何解决使用多个参数的 RESTFUL Web 服务
我有一个包含 getter 和 setter 的类,其中包含值,例如:
String value1;
String value2;
double result;
我想用这两个字符串来确定结果会发生什么。如果 value1 等于“one”且 value2 =“two”,则结果应乘以预定义的值。
@GET
@Path("/{value1}/{value2}/{result}")
@Produces({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
public double getResult() {
Something mon = new Something();
mon.setone(22.2);
mon.setTwo(11.1);
if("/{value1}".equals("one")){
//multiply by mon.setone;
}
return 0;
}
如何读取和访问路径中定义的值?
解决方法
如果您想接收值作为路径参数(如/foo/one/two/something
),您可以使用@PathParam
:
@GET
@Path("/foo/{value1}/{value2}/{result}")
@Produces({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
public double getResult(@PathParam("value1") String value1,@PathParam("value2") String value2,@PathParam("result") String result) {
...
}
但是,根据您打算做什么,您可以考虑将查询参数(如 /foo?value1=one&value2=two&result=something
)与 @QueryParam
结合使用:
@GET
@Path("/foo")
@Produces({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
public double getResult(@QueryParam("value1") String value1,@QueryParam("value2") String value2,@QueryParam("result") String result) {
...
}
您可能需要查看此 question 的答案,以了解有关何时使用它们的详细信息。
,首先你应该使用我使用过的唯一 API 名称 /GetResult
然后输入参数。
@GET
@Path("/GetResult/{value1}/{value2}/{result}")
@Produces({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
public double getResult(
@PathParam(value = "value1") String value1,@PathParam(value = "value2") String value2,@PathParam(value = "result") String result) {
if (value1.equals("one")) {
}
return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。