RESTful API 客户端
RESTful API Client
我是 RESTful API 客户端开发的新手。我有一个要集成到 REST 服务器的示例客户端代码。下面是相同的快照。
public TsbPublishClient() {
client = javax.ws.rs.client.ClientBuilder.newClient();
webTarget = client.target(BASE_URI).path("publication");
}
public <T> T getJson(Class<T> responseType, String product, String version, String category) throws ClientErrorException {
WebTarget resource = webTarget;
resource = resource.path(java.text.MessageFormat.format("registry/{0}/{1}/{2}", new Object[]{product, version, category}));
return resource.request(javax.ws.rs.core.MediaType.APPLICATION_JSON).get(responseType);
}
public void close() {
client.close();
}
我的问题是如何从主 class 调用 getJson() 方法。 return 类型是 T 并且它接受类型为 Class
的 responseType 参数
提前致谢。
我有点惊讶您想要使用 JAX-WS 访问 RESTful API。在此技术中,Web 服务操作调用由基于 XML 的协议(例如 SOAP)表示。
有几种技术可以调用 RESTful 应用程序。这是其中两个:
- Restlet - 轻量级且健壮的 Java REST 框架,可处理客户端和服务器端。
- JAX-RS(JSR 311:JAX-RS:用于 RESTful Web 服务的 Java API)- 标准化的 API 来消费和生产 RESTful 应用程序。 Restlet 提供了此规范的实现。
以下代码描述了带有 Restlet 的客户端示例:
ClientResource cr = new ClientResource("http://(...)/contacts");
MyDataBean bean = cr.get(MediaType.APPLICATION_JSON);
以下代码描述了使用 JAX-RS 的客户端示例:
Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://(...)")
.path("contacts");
MyDataBean bean = target
.request(MediaType.APPLICATION_JSON_TYPE)
.get(MyDataBean.class);
这两种工具都可以利用内容(JSON、XML、YAML 等)/POJO 转换,例如 Jackson。
希望对你有帮助,
蒂埃里
我是 RESTful API 客户端开发的新手。我有一个要集成到 REST 服务器的示例客户端代码。下面是相同的快照。
public TsbPublishClient() {
client = javax.ws.rs.client.ClientBuilder.newClient();
webTarget = client.target(BASE_URI).path("publication");
}
public <T> T getJson(Class<T> responseType, String product, String version, String category) throws ClientErrorException {
WebTarget resource = webTarget;
resource = resource.path(java.text.MessageFormat.format("registry/{0}/{1}/{2}", new Object[]{product, version, category}));
return resource.request(javax.ws.rs.core.MediaType.APPLICATION_JSON).get(responseType);
}
public void close() {
client.close();
}
我的问题是如何从主 class 调用 getJson() 方法。 return 类型是 T 并且它接受类型为 Class
提前致谢。
我有点惊讶您想要使用 JAX-WS 访问 RESTful API。在此技术中,Web 服务操作调用由基于 XML 的协议(例如 SOAP)表示。
有几种技术可以调用 RESTful 应用程序。这是其中两个:
- Restlet - 轻量级且健壮的 Java REST 框架,可处理客户端和服务器端。
- JAX-RS(JSR 311:JAX-RS:用于 RESTful Web 服务的 Java API)- 标准化的 API 来消费和生产 RESTful 应用程序。 Restlet 提供了此规范的实现。
以下代码描述了带有 Restlet 的客户端示例:
ClientResource cr = new ClientResource("http://(...)/contacts");
MyDataBean bean = cr.get(MediaType.APPLICATION_JSON);
以下代码描述了使用 JAX-RS 的客户端示例:
Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://(...)")
.path("contacts");
MyDataBean bean = target
.request(MediaType.APPLICATION_JSON_TYPE)
.get(MyDataBean.class);
这两种工具都可以利用内容(JSON、XML、YAML 等)/POJO 转换,例如 Jackson。
希望对你有帮助, 蒂埃里