Java 如何为外部world REST服务创建REST客户端

Java 如何为外部world REST服务创建REST客户端,java,jax-rs,rest-client,Java,Jax Rs,Rest Client,如何使用JAX-RS客户端fluent API为外部世界rest服务创建rest客户端 例如,假设一个服务返回一个person对象,该对象有两个字段名和年龄 无论我遇到什么样的示例/教程,它们都会执行与下面代码片段相同的操作,或者在同一项目中开发客户机,以便用person.class替换String.class。我应该如何创建独立的客户端,将返回我的pojo的人 String entity = client.target("http://example.com/rest") .p

如何使用JAX-RS客户端fluent API为外部世界rest服务创建rest客户端

例如,假设一个服务返回一个person对象,该对象有两个字段名和年龄

无论我遇到什么样的示例/教程,它们都会执行与下面代码片段相同的操作,或者在同一项目中开发客户机,以便用person.class替换String.class。我应该如何创建独立的客户端,将返回我的pojo的人

String entity = client.target("http://example.com/rest")
        .path("resource/helloworld")
        .queryParam("greeting", "Hi World!")
        .request(MediaType.TEXT_PLAIN_TYPE)
        .header("some-header", "true")
        .get(String.class);
请求实体并将其映射到Java类 例如,假设您正在使用一个RESTAPI,在
http://example.com/api/people/1

{
“姓名”:“约翰·多伊”,
“年龄”:25岁
}
上述JSON可以映射到Java类,定义如下:

公共类人物{
私有字符串名称;
私人整数年龄;
//省略构造函数、getter和setter
}
使用JAX-RS客户机API,可以按如下方式请求JSON,将请求的实体映射到
Person
类:

Client-Client=ClientBuilder.newClient();
Person=客户机。目标(“http://example.com/api")
.路径(“人”).路径(“1”)
.request(MediaType.APPLICATION_JSON)
.get(Person.class);
字符串名称=person.getName();
整数年龄=person.getAge();
JAX-RS客户端API是规范的一部分,参考实现是

为了解析JSON,Jersey为多个框架提供了一组扩展模块,这些框架支持JSON处理和/或JSON到Java绑定。泽西岛支持,和。有关更多详细信息,请查看

手动解析JSON 如果出于某种原因,需要手动解析请求的实体,可以将请求的实体存储在
字符串中

Client-Client=ClientBuilder.newClient();
字符串json=client.target(“http://example.com/api")
.路径(“人”).路径(“1”)
.request(MediaType.APPLICATION_JSON)
.get(String.class);
然后,可以手动解析请求的实体,例如:

ObjectMapper mapper=new ObjectMapper();
JsonNode=mapper.readTree(json);
字符串名称=node.path(“name”).asText();
整数age=node.path(“age”).asInt();

手动解析JSON,也可以考虑./P> 选择


有关如何使用Java使用REST API的替代方案,看看。

谢谢你的回答。我的问题是关于什么标准实践被搁置了,REST发布者是否有必要提供从API返回的对象的POJO,或者消费者是否需要根据JOSN reponce创建POJO,如果你提供一些阅读示例的话,那将非常好