REST API для Java? - PullRequest
       1

REST API для Java?

12 голосов
/ 24 июня 2011

Я готовлю приложение, основанное на консоли, и результатом приложения является файл RDF / XML, который содержит данные обо всех моих соединениях из LinkedIn.Теперь проблема в том, что все мое приложение основано на консоли, и мне нужно иметь REST API, чтобы соединиться с моим приложением.

Я не знаю о REST API и о том, как использовать его с JAVA, но могу легкопройти через документацию и понять это.Мои приложения используют REST API LinkedIn.

Можете ли вы предложить хороший API REST для Java?

Ответы [ 3 ]

23 голосов
/ 24 июня 2011

JAX-RS - это стандартный Java API для веб-сервисов RESTful. Джерси является эталонной реализацией для этого, он имеет как серверные, так и клиентские API-интерфейсы (то есть способы представления методов в вашем коде как веб-сервисы RESTful, а также способы общения с RESTful webслужбы, работающие в других местах).

Существуют также другие реализации JAX-RS, например Apache CXF и JBoss RESTEasy .

3 голосов
/ 24 марта 2015

Пример быстрого кода:

1) Добавьте зависимость javax.ws.rs в pom (при использовании Maven) или загрузите ее.

    <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>jsr311-api</artifactId>
            <version>1.1.1</version> 
    </dependency>

2) Создайте пустой класс для определения пути вашего сервиса; например, для слуха на application/service/rest будет

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("/service/rest")
public class WebConfig extends Application {
}

3) Создайте контроллер вашего API. Например, если нам нужны эти вызовы: application/service/rest/resource/{id} простой код будет:

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;    

@Path("resource/{id}")
public class ApiController {

  /**
   * Call: <code>/service/rest/resource/23</code>
   * @return HTTP Response
   */
  @GET
  public Response getResource(@PathParam("id") String anId) {
    Resource myResource = whatever.get(anId);
    return Response.status(Status.OK).entity(myResource).build();
  }

4) Если мы хотим указать ответ JSON, убедитесь, что у вас есть геттеры для вашего ресурса, и введите:

@GET
@Produces("application/json")
public Response getResource(@PathParam("id") String anId) {
   // the same
}
0 голосов
/ 24 марта 2017

Если вы планируете разместить свой Java-код в облаке, Raimme Platform дает вам хорошую возможность представить конечную точку REST API с помощью всего одной аннотации.

Допустим, у вас есть объект / таблица базы данных с именем my.app.Customer, и вы хотите создать конечную точку для возврата всех клиентов, которые соответствуют определенному имени. В Raimme вы бы достигли этого следующим образом:

@Rest(url = "customers/find")
public List<Customer> find(@Param("keyword") String keyword)
{
    return { select id, name, company.name from my.app.Customer where name ilike '%#keyword%' };
}

Вы можете узнать больше здесь: http://raimme.com/devcenter?questionId=1cg000000000g

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...