如何在“ GraphQL for .NET”和“中继”中链接架构?

迈克尔·希尔斯(Michael Hilus)

我想使用前端Javascript和后端C#构建Web应用程序,并确定GraphQL的值。

  • 对于我的C#后端,我使用一个名为GraphQL for .NET的GraphQL实现
  • 对于我的前端,我想使用Relay,因为它可以与ReactJS很好地配合使用。

现在,对于我的后端,我实现了一个示例架构,如以下示例之一所示:

public class StarWarsSchema : Schema
{
    public StarWarsSchema()
    {
        Query = new StarWarsQuery();
    }
}

在我的前端,我现在需要以某种方式告诉中继。至少这是我在阅读教程时所了解的,因为出于某些原因,需要转译GraphQL查询。这是我想要加载所有Droids的示例:

class Content extends React.Component<ContentProps, { }> {
    ...
}

export default Relay.createContainer(Content, {
    fragments: {
        viewer: () => Relay.QL`
            fragment on User {
                query HeroNameQuery {
                    droids {
                        id
                        name
                    }
                }
            }
        `,
    }
});

中继的示例之一中,我已经看到babel-relay-plugin用于转换。它获取一个架构文件(JSON)。入门的接力表演,指南如何创建graphql-JS和graphql继电器JS这样的架构。

现在我的问题是:

  1. 我真的需要在前端和后端创建模式吗?
  2. 由于后端已经使用该模式返回格式正确的数据,因此教我中继模式有什么意义?
  3. 在这种情况下使用中继有什么好处?当我仅通过常规REST端点以及作为参数的GraphQL查询访问后端时,会丢失什么?
gh
  1. 您仅在后端上需要模式,并且可以使用本文档底部的示例从后端下载schema.json:https ://facebook.github.io/relay/docs/guides-babel-plugin.html
  2. 中继需要架构以正确构造查询并了解返回数据的类型。
  3. Relay包装了您的React组件,并获取/提供了所有必要的数据以进行渲染。它具有开箱即用的许多功能,例如数据缓存,查询合并,因此使用Relay,您不需要获取任何内容,也不必担心如何将数据提供给组件,您只需要编写查询和组件即可。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章