でGraphiQLを使用して、次のように渡すことができexpress-graphql
から graphQLHTTP
があります:NodeJSでフォックス
const {Schema} = require('./data/schema');
const graphQLApp = express();
graphQLApp.use('/', graphQLHTTP({
graphiql: true,
pretty: true,
schema: Schema,
}));
設定のようなものでは、我々はGraphiQLを使用することができます。どのようにFoxxでそれを達成するには? this repoから、私はFoxxがgraphql-sync
を代わりに使用しているのを見ることができました。私は、ソースコードを閲覧し、私はここでそれを見つけた:
controller.js
'use strict';
const Foxx = require('org/arangodb/foxx');
const schema = require('./schema');
const graphql = require('graphql-sync').graphql;
const formatError = require('graphql-sync').formatError;
const ctrl = new Foxx.Controller(applicationContext);
// This is a regular Foxx HTTP API endpoint.
ctrl.post('/graphql', function (req, res) {
// By just passing the raw body string to graphql
// we let the GraphQL library take care of making
// sure the query is well-formed and valid.
// Our HTTP API doesn't have to know anything about
// GraphQL to handle it.
const result = graphql(schema, req.rawBody(), null, req.parameters);
console.log(req.parameters);
if (result.errors) {
res.status(400);
res.json({
errors: result.errors.map(function (error) {
return formatError(error);
})
});
} else {
res.json(result);
}
})
.summary('GraphQL endpoint')
.notes('GraphQL endpoint for the Star Wars GraphQL example.');
それはフォックスでGraphiQLを使用することは可能ですか? YESの場合、どうすれば達成できますか?何かご意見は?
ありがとうございました。
うわー、それはクールです。ありがとうございました.. :) – asubanovsky
実際にexpress-graphqlを調べて、ArangoDBに直接移植することを検討しています。その電話をかけるまでは、これが最善の解決策です。 +1 –