2016-07-02 16 views
1

Kann mir jemand sagen oder auf den Link über die Verwendung von ArangoDB-Foxx zusammen mit Relay Framework (oder um genau zu sein: relay-fullstack)? Ich habe überall gesucht und kein Glück gehabt.ArangoDB-Foxx mit Relay Framework

Ich habe ein Relais-Projekt mit relay-fullstack und ich möchte es mit ArangoDB-Foxx arbeiten lassen (derzeit verwende ich ein Schema von Relay Framework tutorial). Wie ich weiß, verwendet ArangoDB-Foxx graphql-sync anstelle von graphql. Es bricht also den Bauprozess von relay-fullstack.

Jede Hilfe wäre sehr willkommen. Dank .. :)

Antwort

3

ich nicht viel über Relais-fullstack weiß aber, wenn Ihr einziges Problem ist die Schemadatei im Tutorial zur Verfügung gestellt zu erzeugen, nur überprüfen, wie es erzeugt wird: https://github.com/relayjs/relay-starter-kit/blob/master/scripts/updateSchema.js

Mit der neuesten Version von graphql (oder graphql-sync) werden die introspectionQuery und printSchema Dienstprogramme direkt aus dem Paket exportiert.

können Sie emulieren die updateSchema Skript in Foxx durch ein neues Foxx Skript update-schema genannt erstellen:

Fügen Sie zunächst das Skript zu Ihrem Manifest:

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

implementieren dann das Skript selbst als scripts/updateSchema.js wie so (vorausgesetzt, Ihr GraphQL Schema lebt in 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) 
) 

Sie können Führen Sie nun das Skript über die Weboberfläche aus, indem Sie auf den Tab Einstellungen Ihres Dienstes gehen und es aus dem Dropdown auswählen (Sie müssen keine Argumente übergeben, drücken Sie einfach OK). Das Skript sollte die zwei JSON- und GraphQL-Dateien für Ihr Schema generieren, wie es im Starter-Kit der Fall ist.

+0

Große Antwort. Zusätzlich müssen Sie eine API (GET) in Ihrem Foxx bereitstellen, um die 'schema.json' zurück an Ihre Relay-App zu übergeben. Im 'server/utils/babelRelayPlugin.js' müssen Sie die GET-Anfrage machen und dann' babel-relay-plugin' einrichten, indem Sie die abgerufene 'schema.json' übergeben. – lvarayut