Пример быстрого кода:
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
}