facebook - 中继应用程序 : How to introspect schema on server?

标签 facebook reactjs relayjs graphql sangria

我正在玩接力入门套件。我也用过 sangria创建一个 graphql 服务器。现在,我正在尝试将两者联系在一起。

在 relay-starter-kit 中,每次更改 schema 时,都需要运行一个脚本来重新生成 schema.json 文件。但是由于 graphql 支持模式自省(introspection),我想知道是否有一种方法可以配置我的中继应用程序以在服务器启动时自省(introspection)模式。

有谁知道这是否可行或想出如何做到这一点?

最佳答案

定义一个 babelRelayPlugin.js(在验证客户端 graphql 查询时由 webpack 运行):

var babelRelayPlugin   = require('babel-relay-plugin');
var introspectionQuery = require('graphql/utilities').introspectionQuery;
var request            = require('sync-request');

var url = 'http://localhost:3000/graphql';

var response = request('POST', url, {
   qs: {
      query: introspectionQuery
   }
});

var schema = JSON.parse(response.body.toString('utf-8'));

module.exports = babelRelayPlugin(schema.data, {
   abortOnError: true,
});

当然,将 url 变量更改为您用于开发的任何服务器 url。 在 webpack 中,在您的加载器定义中包含以下内容:

query: {stage: 0, plugins: ['./babelRelayPlugin']}

并指向上面的babelRelayPlugin.js文件的位置。

关于facebook - 中继应用程序 : How to introspect schema on server?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32178553/

相关文章:

android - 如何创建和使用自托管对象在 Android 中共享自定义故事?

php - Laravel 5.3 - 社交登录疑惑

javascript - 使用 useState() 将对象作为状态

relayjs - 使用 Relay 的瞬时用户通知模式

javascript - 遵循 Relay 分步指南时出现 AST 节点错误

ios - Facebook iOS App 邀请好友

Facebook Oauth 2.0 和速率限制

javascript - 'outerMap' 未定义 no-undef

javascript - 将 jQuery 插件与 React 集成

graphql - 在 Relay.js 中, `Client Mutation Identifier` 是什么?