Nuxeo propose une API REST très puissante, mais comme vous le savez peut-être, gérer des requêtes HTTP, des en-têtes et des mises à jour de serveurs demande pas mal de travail. Pour faciliter ces actions, Nuxeo met à votre disposition plusieurs clients REST pour vos langages préférés :

Nous avons développé le client Java pour qu'il fonctionne avec une version spécifique de Nuxeo Server. Par exemple, 1.x correspondait à la LTS 2015 de Nuxeo, 2.x à la LTS 2016 et nous prévoyons de publier une version 3.x pour la LTS 2017.

Chez Nuxeo, nous faisons tout pour vous faciliter la vie. Nous avons réalisé que certains clients retardaient leurs mises à jour parce que le processus leur semblait trop long et fastidieux. Dans cette optique, nous avons retravaillé l'ensemble client Java pour la version 3.x afin de simplifier la mise à niveau.

Nous avons donc le plaisir de vous annoncer que le client Nuxeo Java 3.0.0 est compatible avec toutes les versions de Nuxeo Server à partir de la LTS 2015 et que sa première version Release Candidate (RC1) est maintenant disponible !

Nous avons également ajouté de nouvelles fonctionnalités bien utiles :

  • Un test permettant de savoir si la connexion au serveur Nuxeo est réussie lors de la création d'une instance NuxeoClient
  • La désérialisation de Document#properties et Document#contextParameters en objets distincts
  • La possibilité d'uploader un blob depuis un InputStream
  • La configuration des terminaisons des gestionnaires
  • La configuration de l'isolation entre les gestionnaires

Voyons comment utiliser ce nouveau client et certaines des fonctionnalités ci-dessus :

Étape 1. Créer un client.

NuxeoClient client = new NuxeoClient.Builder().url("http://localhost:8080/nuxeo")
                                              .authentication("Administrator", "Administrator")
                                              .schemas("*")
                                              .connect();

À ce stade, nous disposons d'un client capable de gérer des requêtes vers le serveur Nuxeo.
Nous allons créer des documents (en partant du principe que le client est connecté à un nouveau serveur Nuxeo).

Document aFolder = Document.createWithName("aFolder", "Folder");
Document aFile = Document.createWithName("aFile", "File");

client.repository().createDocumentByPath("/", aFolder);
client.repository().createDocumentByPath("/aFolder", aFile);

Étape 2. Récupérer le document aFile avec son fil d'Ariane.

aFile = client.repository().enrichersForDocument("breadcrumb").fetchDocumentByPath("/aFolder/aFile");
// get the breadcrumb from context parameters
Documents breadcrumb = aFile.getContextParameter("breadcrumb");
aFolder = breadcrumb.getDocument(0);
aFile = breadcrumb.getDocument(1);

On profite ici de l'isolation de la configuration et de la désérialisation des paramètres de contexte. À chaque fois que le client génère un gestionnaire, il s'agit d'un nouveau gestionnaire avec son propre contexte initialisé avec la configuration du client. Dans cet exemple le breadcrumb ne sera en place que pour la récupération aFile. Par ailleurs, comme breadcrumb est sérialisé en tant que documents par le serveur Nuxeo, le client peut le désérialiser vers Documents.

Vous pouvez trouver d'autres exemples ici.

Essayez dès maintenant ce nouveau client et n'hésitez pas à nous faire part de vos retours. La version définitive sera publiée en octobre. À bientôt !