2016-07-02 1 views
1

ArangoDB-FoxxをRelay Frameworkと一緒に使用する方法(または具体的にはrelay-fullstack)については誰でも教えてください。私はどこにでもいて、運がない。ArangoDB-Foxx with Relay Framework

私はrelay-fullstackを使用しているリレープロジェクトを持っており、ArangoDB-Foxx(現在はRelayフレームワークのtutorialのスキーマを使用しています)で動作させたいと考えています。私が知っているように、ArangoDB-Foxxはgraphqlの代わりにgraphql-syncを使います。それで、それはrelay-fullstackの構築プロセスを壊します。

ご協力いただければ幸いです。おかげで.. :)私はリレー-fullstackについて多くを知っているが、あなたの唯一の問題は、チュートリアルで提供されたスキーマファイルを生成している場合は、それがどのように生成されるかをチェックしません

答えて

3

:最新バージョンでhttps://github.com/relayjs/relay-starter-kit/blob/master/scripts/updateSchema.js

graphql(またはgraphql-sync)のintrospectionQueryprintSchemaユーティリティはパッケージから直接エクスポートされます。

あなたはupdate-schemaと呼ばれる新しいフォックスのスクリプトを作成することにより、フォックスでupdateSchemaスクリプトをエミュレートすることができます。

まずマニフェストにスクリプトを追加:

"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を押してください)、Webインターフェイスからスクリプトを実行してください。このスクリプトは、スターターキットにあるような2つのJSONおよびGraphQLファイルを生成する必要があります。

+0

偉大な答え。さらに、 'schema.json'をRelayアプリケーションに渡すために、Foxxにapi(GET)を提供する必要があります。 'server/utils/babelRelayPlugin.js'では、GETリクエストを作成し、取得した' schema.json'を渡して 'babel-relay-plugin'を設定する必要があります。 – lvarayut

関連する問題