M.M*_*M.M 10 java rest web-services parameter-passing
我有一个简单的RESTful Web服务,可以打印"Hello World!" 我正在使用NetBeans,代码如下:
package resource;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.Consumes;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
@Path("simple")
public class SimpleResource {
@Context
private UriInfo context;
/** Creates a new instance of SimpleResource */
public SimpleResource() {
}
@GET
@Produces("application/xml")
public String getXml() {
//TODO return proper representation object
return "<greeting>Hello World !</greeting>";
}
@PUT
@Consumes("application/xml")
public void putXml(String content) {
}
}
Run Code Online (Sandbox Code Playgroud)
我从这个URL调用这个Web服务:http://localhost:8080/WebService/resources/simple
.现在,我想向此Web服务发送一个参数,然后在"Hello world"消息之后打印此参数.
我们怎么做?
谢谢!
Don*_*ows 23
在REST中处理参数的两种主要方式是通过解析路径并通过提取查询部分.
这些处理这种情况 - /foo/{fooID}
- 哪个{fooID}
模板将被您想要的参数替换:
@GET
@Produces("text/plain")
@Path("/foo/{fooID}")
public String getFoo(@PathParam("fooID") String id) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
这些对于您可以将参数视为描述资源的情况非常有用.
这些处理这种情况 - /?foo=ID
就像你从传统的表单处理中得到的那样:
@GET
@Produces("text/plain")
@Path("/")
public String getFoo(@QueryParam("foo") String id) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
这些对于您认为参数描述资源的附件而非资源本身的情况非常有用.该@FormParam
注释是非常相似的,除了它是用于处理提交的表单,而不是GET风格参数
JAX-RS规范支持其他类型的参数处理(矩阵参数,标题参数,cookie参数),它们与程序员的工作方式大致相同,但使用起来比较少见或更专业.开始探索细节的合理位置是JAX-RS javadoc本身,因为它具有有用的链接.
归档时间: |
|
查看次数: |
27203 次 |
最近记录: |