如何使用JAX-RS Client Fluent API为外部世界REST服务创建rest客户端?
例如,假设一个服务返回一个person对象,该对象有两个字段名和年龄。
无论我遇到什么样的例子/教程,他们做同样的事情,下面的片段或他们开发客户端在同一个项目,以取代tring.classperson.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);
例如,您正在使用一个REST API,它在执行<代码> >获取< /代码>请求时提供以下JSONhttp://example.com/api/people/1:
{
"name": "John Doe",
"age": 25
}
上述JSON可以映射到Java类,定义如下:
public class Person {
private String name;
private Integer age;
// Constructor, getters and setters omitted
}
使用JAX-RS客户机API,可以按如下方式请求JSON,将请求的实体映射到Person
类:
Client client = ClientBuilder.newClient();
Person person = client.target("http://example.com/api")
.path("people").path("1")
.request(MediaType.APPLICATION_JSON)
.get(Person.class);
String name = person.getName();
Integer age = person.getAge();
JAX-RS客户端API是JAX-RS 2.0规范的一部分,参考实现是泽西。
为了解析JSON,Jersey为多个框架提供了一组扩展模块,这些框架支持JSON处理和/或JSON到Java绑定。Jersey支持MOXy、JSON-P、Jackson和抛弃。有关更多详细信息,请参阅文档。
如果出于某种原因,需要手动解析请求的实体,可以将请求的实体存储在字符串中
:
Client client = ClientBuilder.newClient();
String json = client.target("http://example.com/api")
.path("people").path("1")
.request(MediaType.APPLICATION_JSON)
.get(String.class);
然后可以使用例如Jackson手动解析请求的实体:
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(json);
String name = node.path("name").asText();
Integer age = node.path("age").asInt();
若要手动解析JSON,还可以考虑GSON。
有关如何使用Java使用REST API的替代方法,请查看此答案。
NewTLSServer创建的服务器可以验证对显式从其创建的客户端的调用: 在行中。 但是,我有一个生产程序,我想将其设置为使用作为主机。我越来越 我称之为错误。 我如何设置与客户端进行身份验证,就像普通的HTTPS服务器一样?
此功能的状态是实验性的。我们欢迎您对此功能的实用性的反馈。我们可能会在未来发展这个功能,使其更加通用。虽然我们将努力确保向后兼容性,但不能保证。 场景 在某些情况下,希望能够从交易处理函数中调用REST API。这使你可以将区块链中的复杂计算移出。调用REST API允许交易处理器功能将复杂或昂贵的计算外包给中央或peer托管的服务。 调用外部REST服务 post(url,data)函数可用于交
15.1 数据库迁移 这个名字是源自于Ruby On Rails在那时候的印象,不直接使用MySQL的目的在于让我们可以专注于过程。 15.1.1 创建表 表的概念,类似于在Excel中的表,如果你真实不懂数据库。 让我们创建一个athomes的表,为什么是athomes,因为以前在写android程序的时候就叫的是athome,忽略掉这些次要的因素吧。 $ php artisan migrate
关于Netflix Eureka Service Registry,我已经成功地使用Tomcat8.0.35设置了Eureka Netflix服务器。我还得到了基本的示例服务&客户端来进行相互通信。我对Eureka还是个新手,管理层决定将Eureka与Spring一起使用,因为几个新的应用程序都是围绕Spring框架编写的。 null 我希望为大多数非AWS云实例配置服务和客户端。Eureka W
我是java和web服务以及的新手。我最近使用一些教程创建了一个web服务。当我第一次学习eclipse教程时,让我创建一个客户机。但是当我尝试创建一个新项目和一个新的web服务客户机时,它会给出。具体如下所示: im使用Axis2-1.6.1,它说java遵从性级别是6,我搜索了一下,但是找不到解决这个问题的相关方案。感谢任何帮助。
我正在使用Spring3.0 restTemboard通过调用post方法消费json webservice。 我们的应用程序部署在WAS服务器中,并试图通过创建与TLS1的套接字连接来连接producer。0.但是,现在producer只支持TLS1。1和TLS1。2. 如何强制restTempate使用TLS1。1或TLS 1.2。 通常,对于apache httpClient代码,创建自定义