REST API для Java?

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

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

Итак, можете ли вы предложить некоторые из полезных API REST для Java?

Ответ 1

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

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

Ответ 2

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

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
}

Ответ 3

Если вы планируете разместить свой Java-код в облаке, платформа Raimme предоставляет вам хорошую возможность выставить конечную точку 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