Persistence dans une BD externe

  • Sans librairie spécifique

    • si la BD offre une interface HTTP
    • avec l'objet requête HTTP
  • Avec une librairie spécifique

    • niveau d'abstraction supérieur à la transaction HTTP
    • natives si construites avec des drivers spécifiques (ex: connexion par socket TCP, protocoles binaires)
    • non natives si construites avec une interface HTTP (plus verbeux)

Exemples

eXist-DB ?

  • Librairie existdb-node par Wolfgang Meier

    Est-elle maintenue (dernier commit il y a 1 année) ?

    From:	  Wolfgang Meier (wolf...@exist-db.org)
    Date:	  Oct 27, 2012 5:45:46 am
    
    I was recently reading a book on node.js and as an exercise, I wrote a client
    module for eXist-db. It allows you to use code like the following:
    
    var Connection = require("./lib/connection.js");
    var options = {
        host: "localhost",
        port: 8080,
        rest: "/exist/rest"
    };
    var connection = new Connection(options);
    var query = connection.query("//SPEECH[ft:query(., $term)]", { chunkSize: 20 });
    query.bind("term", "love").each(function(item) {
        console.log(item);
    
    });
    
    It is based on the REST interface (all future eXist-db APIs will be REST-based
    because it is the fastest option). The node.js module does not require any
    additional modules and query results are streamed in chunks to avoid memory
    issues. The server returns the response as a JSON object, which is handled
    natively by node.js.

    source

  • Utilise l'API REST d'eXist-DB pour envoyer des requêtes à eXist-DB

À suivre....

  • Ce module se poursuit avec les transparents suivants :

  • Exposer des services (Rappels)

  • Limitations RESTXQ

  • Format des données

  • Cas données JSON

  • Transport JSON en entrée

  • Conversion JSON vers XML

  • Difficultés avec RESTXQ

  • Solution avec REST

  • Solution avec REST

  • Conversion XML vers JSON

  • Renvoyer du JSON avec RESTXQ

  • Renvoyer du JSON avec REST

  • Exercice 18