GraphQL-LD.js icon indicating copy to clipboard operation
GraphQL-LD.js copied to clipboard

Support for query variables

Open driesmarzougui opened this issue 5 years ago • 1 comments

It's seems like query variables are not supported yet.

Example:

const Client = require('graphql-ld').Client;
const QueryEngineComunica = require('graphql-ld-comunica').QueryEngineComunica;

// Define a JSON-LD context
const context = {
    "@context": {
        "Film": "http://dbpedia.org/ontology/Film",
        "label": {"@id": "http://www.w3.org/2000/01/rdf-schema#label", "@language": "en"},
        "starring": "http://dbpedia.org/ontology/starring"
    }
};

// Create a GraphQL-LD client based on a client-side Comunica engine over 3 sources
const comunicaConfig = {
    sources: [
        {type: "sparql", value: "http://dbpedia.org/sparql"},
    ],
};
const client = new Client({context, queryEngine: new QueryEngineComunica(comunicaConfig)});

// Define a query
const query = `query MoviesActor($actor: String!){
          id @single
          ... on Film {
            starring(label: $actor) @single
          }
        }`;

const variables = {
    actor: "Angelina_Jolie"
};

// Execute the query
async function ex() {
    const data = await client.query({query: query, variables: variables});
    console.log(data);
}

ex();

Returns the following error: Error: Undefined variable: actor

driesmarzougui avatar Aug 07 '19 09:08 driesmarzougui

Thanks for reporting!

Note to self: there's a big TODO for that here: https://github.com/rubensworks/GraphQL-LD.js/blob/master/lib/Client.ts#L75

rubensworks avatar Aug 07 '19 09:08 rubensworks