RESTFUL 使用多个参数的 Web 服务
RESTFUL Web Service using multiple arguments
我有一个 class 和我的 getter 和 setter,包含值,例如:
String value1;
String value2;
double result;
我想使用这两个字符串来确定结果应该发生什么。如果 value1 等于“一”且 value2 =“二”,则结果应乘以预定义值。
@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;
}
我有一个 class 和我的 getter 和 setter,包含值,例如:
String value1;
String value2;
double result;
我想使用这两个字符串来确定结果应该发生什么。如果 value1 等于“一”且 value2 =“二”,则结果应乘以预定义值。
@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;
}