Как вызвать GraphQL API с сервера Node.js / Express? - PullRequest
0 голосов
/ 16 октября 2018

Недавно я реализовал схему и некоторые средства распознавания для моего сервера Express.Я успешно проверил их через /graphql, и теперь я хотел бы вызывать запросы, которые я реализовал при доступе из REST API, например:

//[...]
//schema and root correctly implemented and working
app.use('/graphql', graphqlHTTP({
  schema: schema,
  rootValue: root,
  graphiql: true,
}));

//I start the server
app.listen(port, () => {
  console.log('We are live on ' + port);
});

//one of many GET handlers
app.get("/mdc/all/:param", function(req, res) {
    //call one of the (parametrized) queries here
    //respond with the JSON result
});

Как я могу вызывать запросы, которые я определил с помощью GraphQL, внутри моегоПОЛУЧИТЬ обработчики?Как передать им параметры?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 21 января 2019

По сути, вы можете просто использовать метод http post для извлечения данных из GraphQL API, но здесь очень хорошее решение, использующее node-fetch, для его установки:

npm install node-fetch -сохранить

и код для его использования:

const fetch = require('node-fetch');

const accessToken = 'your_access_token_from_github';
const query = `
  query {
    repository(owner:"isaacs", name:"github") {
      issues(states:CLOSED) {
        totalCount
      }
    }
  }`;

fetch('https://api.github.com/graphql', {
  method: 'POST',
  body: JSON.stringify({query}),
  headers: {
    'Authorization': `Bearer ${accessToken}`,
  },
}).then(res => res.text())
  .then(body => console.log(body)) // {"data":{"repository":{"issues":{"totalCount":247}}}}
  .catch(error => console.error(error));

это решение было взято из здесь

0 голосов
/ 24 октября 2018

Я использовал Apollo и выполнял запросы непосредственно на /graphql через POST из внешнего интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...