RESTful API客户端
问题描述:
我是RESTful API客户端开发的新手。我有一个示例客户端代码来集成到REST服务器。下面是同样的快照。RESTful API客户端
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();
}
我的问题是我如何从我的主类调用getJson()方法。返回类型是T,它接受类型为<的响应类型参数。T >
在此先感谢。
答
我有点惊讶你想用JAX-WS来访问一个RESTful API。在这项技术中,Web服务操作调用由基于XML的协议(如SOAP)表示。
有几种技术可以调用REST风格的应用程序。这里有两个:
- Restlet - 一个轻便,坚固的Java REST框架铲球客户端和服务器端。
- JAX-RS(JSR 311:JAX-RS:用于REST风格的Web服务的Java API) - 一种标准化的API,用于消费和生成REST风格的应用程序。 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。
希望它可以帮助你, 蒂埃里
是你写的代码?我看不出问题是什么。我看到的唯一问题是“我怎么称这种方法?”如果您没有编写此代码,我想知道它是否适用于您的域。请详细说明调用此方法非常困难的是什么? – 2015-02-24 11:24:45
如果您没有编写它,并且它不适合您的域名,那么您不能调用它。你只需要编写你自己的代码。 – 2015-02-24 11:28:10
嗨peeskillet,没有我有上面的类文件与REST服务器集成。 – 2015-02-25 04:54:58