API REST pour Java?


Je prépare une application basée sur la console et le résultat de l'application est un fichier RDF/XML qui contient les données de toutes mes connexions à partir de LinkedIn. Maintenant, le problème est que toute mon application est basée sur la console et j'ai besoin d'une API REST pour l'incorporer à mon application.

Je ne connais pas les API REST et comment les utiliser avec JAVA, mais je peux facilement parcourir la documentation et la comprendre. Mes applications utilisent l'API REST de LinkedIn.

Pouvez-vous donc suggérer une bonne API REST pour Java?

Author: joelittlejohn, 2011-06-24

3 answers

JAX-RS est l'API Java standard pour les services Web RESTful. Jersey est l'implémentation de référence pour cela, il a des API côté serveur et côté client (donc, des moyens d'exposer les méthodes dans votre code en tant que services Web RESTful, ainsi que des moyens de parler aux services Web RESTful s'exécutant ailleurs).

Il existe également d'autres implémentations de JAX-RS, par exemple Apache CXFet JBoss RESTEasy.

 22
Author: Jesper, 2011-06-24 06:47:27

Exemple de code rapide:

1) Ajouter le javax.ws.rs dépendance dans votre pom (si vous utilisez Maven) ou téléchargez-le.

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

2) Créez une classe vide pour définir le chemin de votre service; par exemple pour entendre à {[4] } serait

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

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

3) Créez le contrôleur de votre api. Par exemple si nous avons besoin de ces appels: {[5] } un code simple serait:

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) Si nous voulons spécifier une réponse JSON, assurez-vous que vous avez les getters pour votre ressource et votre type:

@GET
@Produces("application/json")
public Response getResource(@PathParam("id") String anId) {
   // the same
}
 2
Author: Manu, 2015-03-24 12:56:34

Si vous envisagez d'héberger votre code Java dans un cloud, Raimme Platform vous offre une bonne opportunité d'exposer un point de terminaison d'API REST avec une seule annotation.

Supposons que vous ayez un objet/table de base de données appelé my.app.Customer et que vous souhaitiez créer un point de terminaison pour renvoyer tous les clients qui correspondent à un certain nom. Dans Raimme, vous réaliseriez ceci comme suit:

@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%' };
}

Vous pouvez en savoir plus ici: http://raimme.com/devcenter?questionId=1cg000000000g

 0
Author: radekkc, 2017-03-24 11:23:59