フロントエンド用のJavascriptとバックエンド用のC#でWebアプリケーションを構築したいと思い、GraphQLの値を決定したいと考えています。"GraphQL for .NET"と "Relay"でスキーマをリンクする方法は?
- 私のC#バックエンドでは、GraphQL for .NETという名前のGraphQL実装を使用します。
- 私のフロントエンドでは、RelayをReactJSでうまく使用したいと思います。
が今私のバックエンドのために、私はこのようになりますone of the examplesのように、サンプル・スキーマ実装:私のフロントエンドでは
public class StarWarsSchema : Schema
{
public StarWarsSchema()
{
Query = new StarWarsQuery();
}
}
を、私は今、このスキーマについて何とかリレーを伝える必要があります。少なくとも、これは私がチュートリアルを歩いているときに理解したことです。なぜなら、何らかの理由でGraphQLクエリを転送する必要があるからです。
class Content extends React.Component<ContentProps, { }> {
...
}
export default Relay.createContainer(Content, {
fragments: {
viewer:() => Relay.QL`
fragment on User {
query HeroNameQuery {
droids {
id
name
}
}
}
`,
}
});
リレーのone of the examplesでは、私が見てきたbabel-relay-pluginは、変換に使用されていること: これは私がすべてのドロイドをロードしたいかのように例があります。スキーマファイル(JSON)を取得します。 Getting Started Relay Guideに、graphql-jsとgraphql-relay-jsを使ってそのようなスキーマを作成する方法を示します。今
私の質問:
- 私は本当に前に、バックエンドでスキーマを作成する必要がありますか?
- バックエンドはすでにスキーマを使用して正常に形成されたデータを返すので、教授のポイントは何ですか?
- このシナリオでは、Relayを使用する利点は何ですか? GraphQLクエリをパラメータとして使用して、通常のRESTエンドポイント経由でバックエンドにアクセスすると、何が失われますか?
GraphQLクエリからフロントエンドコードを作成する際に、transpilationプロセスでschema.jsonが必要であることがわかりました。 –