Ram*_*Sri 4 rest tomcat jersey maven jersey-client
我正在尝试使用Maven,Apache Tomcat 7.0,Eclipse IDE创建一个基本的RESTful应用程序.我在谷歌的一些示例代码中遇到了jven-server,jersey-client,jersey-grizzly等maven依赖项的使用.
我想知道这些依赖的目的,即.为什么我们添加它们,它做什么,它们是如何工作的?
我已经推荐了几件球衣javadocs,但我无法得到清晰的图片.请提供相同的简单说明.
提前致谢
简而言之:您使用jersey-server来公开REST API,如下例所示:
@Path("/hello")
class RESTDispatcher {
@GET
@Path("/world")
public String helloWorld() {
return "Hello world!"
}
}
Run Code Online (Sandbox Code Playgroud)
您使用jersey-client来使用REST API
public static String callRestAPI(String[] args) {
Invocation.Builder builder = ClientBuilder
.newClient()
.target("http://localhost/hello/world");
Response response = builder.method("GET");
String result = response.readEntity(String.class);
return result;
//will return "Hello world!" with our previous example deployed on localhost
}
Run Code Online (Sandbox Code Playgroud)
而jersey-grizzly只是为了使用带有灰熊服装的球衣.
更新
我的意思是,每当我们需要调用某人暴露的REST API时,我们都需要jersey-client.
我的泽西客户端使用示例假设您的localhost上部署了第一个示例.看第一实施例的注释,@Path类和@Path在路径的方法的结果/你好/世界,应使用HTTP GET请求(见称为@GET注释).
因此,我们使用该目标创建REST客户端
Invocation.Builder builder = ClientBuilder
.newClient()
.target("http://localhost/hello/world");
Run Code Online (Sandbox Code Playgroud)
然后我们用HTTP GET请求调用此目标
Response response = builder.method("GET");
Run Code Online (Sandbox Code Playgroud)
然后我们知道(来自helloWorld方法的签名)这个API响应包含一个可以反序列化为String实例的实体.所以我们把它读成"result"变量
String result = response.readEntity(String.class);
Run Code Online (Sandbox Code Playgroud)
您应该将反序列化的目标类作为参数提供给readEntity响应方法.
此外,REST API仅返回String并不常见.相反,它们返回JSON或XML.在这种情况下,您可以使用JAXB来读取实体,Jersey可以完美地使用它.查看这部分文档以获取XML支持,并查看此内容以获取JSON.
| 归档时间: |
|
| 查看次数: |
2346 次 |
| 最近记录: |