我是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();
}
我的问题是如何从我的主类调用getJson()方法。返回类型为T,它接受responseType参数,类型为Class&lt; T&gt;
先谢谢。
答案 0 :(得分:1)
我有点惊讶你想使用JAX-WS来访问RESTful API。在此技术中,Web服务操作调用由基于XML的协议(如SOAP)表示。
有几种技术可以调用RESTful应用程序。以下是其中两个:
以下代码描述了具有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。
希望它可以帮到你, 亨利