¿API REST para Java?

Estoy preparando una aplicación que está basada en la consola y el resultado de la aplicación es un archivo RDF / XML que contiene datos de todas mis conexiones de LinkedIn. Ahora el problema es que toda mi aplicación está basada en la consola y necesito tener una API REST para incorporarla a mi aplicación.

No tengo conocimiento de las API de REST ni de cómo utilizarlas con JAVA, pero puedo leer fácilmente la documentación y entenderla. Mis aplicaciones usan la API REST de LinkedIn.

Entonces, ¿puedes sugerir algunas de las buenas API REST para Java?

JAX-RS es la API estándar de Java para servicios web RESTful. Jersey es la implementación de referencia para esto, tiene API del lado del servidor y del lado del cliente (por lo tanto, maneras de exponer métodos en su código como servicios web RESTful, así como formas de comunicarse con servicios web RESTful que se ejecutan en otro lugar).

También hay otras implementaciones de JAX-RS, por ejemplo Apache CXF y JBoss RESTEasy .

Ejemplo de código rápido:

1) Agregue la dependencia javax.ws.rs en su pom (si usa Maven) o descárguela.

 javax.ws.rs jsr311-api 1.1.1  

2) Crea una clase vacía para definir la ruta de tu servicio; por ejemplo, para escuchar en la application/service/rest sería

 import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; @ApplicationPath("/service/rest") public class WebConfig extends Application { } 

3) Crea el controlador de tu api. Por ejemplo, si necesitamos estas llamadas: application/service/rest/resource/{id} un código simple sería:

 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: /service/rest/resource/23 * @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) Si queremos especificar una respuesta JSON, asegúrese de tener los captadores para su recurso y escriba:

 @GET @Produces("application/json") public Response getResource(@PathParam("id") String anId) { // the same } 

Si está considerando alojar su código Java en una nube, Raimme Platform le brinda una buena oportunidad para exponer un extremo de REST API con solo una anotación.

Supongamos que tiene una tabla / objeto de base de datos llamada my.app.Customer , y desea crear un punto final para devolver a todos los clientes que coincidan con un nombre determinado. En Raimme, lograrías esto de la siguiente manera:

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

Puede encontrar más información aquí: http://raimme.com/devcenter?questionId=1cg000000000g