2016-07-02 3 views
1

Может ли кто-нибудь сказать мне или указать мне ссылку о том, как использовать ArangoDB-Foxx вместе с Relay Framework (или конкретно: relay-fullstack)? Я везде искал и не повезло.ArangoDB-Foxx с Relay Framework

У меня есть проект ретрансляции с использованием relay-fullstack, и я хочу, чтобы он работал с ArangoDB-Foxx (в настоящее время я использую схему из Frame Relay tutorial). Как я знаю, ArangoDB-Foxx использует graphql-sync вместо graphql. Таким образом, он разрушает строительный процесс relay-fullstack.

Любая помощь будет очень признательна. Спасибо .. :)

ответ

3

Я не знаю много о реле-fullstack, но если ваша единственная проблема создания файла схемы, представленную в учебнике, просто проверить, как оно генерируется: https://github.com/relayjs/relay-starter-kit/blob/master/scripts/updateSchema.js

С последней версией of graphql (или graphql-sync) утилиты introspectionQuery и printSchema экспортируются непосредственно из пакета.

Вы можете эмулировать updateSchema сценарий в Фокса, создав новый Foxx скрипт update-schema:

Первый добавить скрипт в манифесте:

"scripts": { 
    "update-schema": "scripts/updateSchema.js" 
} 

Затем реализовать сам скрипт, как scripts/updateSchema.js как так (при условии, ваша схема GraphQL живет в data/schema.js):

'use strict' 
const fs = require('fs') 
const path = require('path') 
const Schema = require('../data/schema') 
const gql = require('graphql') 

const result = gql.graphql(Schema, gql.introspectionQuery) 
if (result.errors) { 
    console.error(
    'ERROR introspecting schema: ', 
    JSON.stringify(result.errors.map((err) => gql.formatError(err)), null, 2) 
) 
} else { 
    fs.writeFileSync(
    path.join(__dirname, '../data/schema.json'), 
    JSON.stringify(result, null, 2) 
) 
} 
fs.writeFileSync(
    path.join(__dirname, '../data/schema.graphql'), 
    gql.printSchema(Schema) 
) 

Вы можете теперь запустите сценарий из веб-интерфейса, перейдя на вкладку настроек вашей службы и выбрав ее из раскрывающегося списка (вам не нужно передавать какие-либо аргументы, просто нажмите OK). Сценарий должен генерировать два файла JSON и GraphQL для вашей схемы, как и в наборе стартеров.

+0

Отличный ответ. Кроме того, вам необходимо предоставить api (GET) в Foxx, чтобы передать «schema.json» обратно в ваше приложение Relay. В 'server/utils/babelRelayPlugin.js' вам нужно сделать запрос GET, а затем настроить' babel-relay-plugin', передав извлеченный 'schema.json'. – lvarayut