使用多个参数的RESTFUL Web服务



我有一个包含getter和setter的类,其中包含值,例如:

String value1;
String value2;
double result;

我想使用这两个字符串来确定结果应该发生什么。如果值1等于"0";一个";并且值2="0";两个";则该结果应当乘以预定义的值。

@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) {
...
}

您可能需要查看此问题的答案,以了解何时使用每个答案的详细信息。

首先,您应该使用唯一的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;
}

最新更新