RESTful API客户端

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 >

在此先感谢。

+0

是你写的代码?我看不出问题是什么。我看到的唯一问题是“我怎么称这种方法?”如果您没有编写此代码,我想知道它是否适用于您的域。请详细说明调用此方法非常困难的是什么? – 2015-02-24 11:24:45

+0

如果您没有编写它,并且它不适合您的域名,那么您不能调用它。你只需要编写你自己的代码。 – 2015-02-24 11:28:10

+0

嗨peeskillet,没有我有上面的类文件与REST服务器集成。 – 2015-02-25 04:54:58

我有点惊讶你想用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

希望它可以帮助你, 蒂埃里