2015-02-24 2 views
1

Я новичок в разработке клиентских интерфейсов RESTful API. У меня есть образец клиентского кода для интеграции с REST Server. Ниже приведена стрельба.Клиент 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 и он принимает параметр responseType, который относится к типу Class <T>

Thanks in Advance.

+0

Вы написали этот код? Я не понимаю, в чем проблема. Единственный вопрос, который я вижу, - «как я могу назвать этот метод?» Если вы не пишете этот код, я задаюсь вопросом, даже он настроен для работы в вашем домене. Пожалуйста, уточните, что именно так сложно назвать этот метод? –

+0

Если вы его не пишете, и это не подходит для вашего домена, вы не можете его назвать. Вам просто нужно написать свой собственный код. –

+0

Hi peeskillet, Нет. Я получил вышеупомянутый файл класса для интеграции с REST Server. –

ответ

1

Я немного удивлен, что вы хотите использовать JAX-WS для доступа к RESTful API. В этой технологии вызов операции веб-службы представлен протоколом на основе XML, таким как SOAP.

Существует несколько технологий для вызова приложений RESTful. Вот два из них:

  • Restlet - легкая и прочная основа Java REST, который решает клиентские и серверные стороны.
  • JAX-RS (JSR 311: JAX-RS: API Java для веб-служб RESTful) - стандартизованный 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.

Надеется, что это помогает, Тьерри

Смежные вопросы