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