【发布时间】:2016-10-28 20:46:09
【问题描述】:
我想用 Javascript 为前端和 C# 为后端构建一个 Web 应用程序,我想确定 GraphQL 的值。
- 对于我的 C# 后端,我使用名为 GraphQL for .NET 的 GraphQL 实现。
- 对于我的前端,我想使用 Relay,因为它与 ReactJS 配合得很好。
现在对于我的后端,我实现了一个类似于one of the examples 的示例架构,如下所示:
public class StarWarsSchema : Schema
{
public StarWarsSchema()
{
Query = new StarWarsQuery();
}
}
在我的前端,我现在需要以某种方式告诉 Relay 这个架构。至少这是我在浏览教程时所理解的,因为出于某种原因,需要对 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 for Relay 中,我看到babel-relay-plugin 用于转换。它获取一个模式文件 (JSON)。 Getting Started 中继指南展示了如何使用 graphql-js 和 graphql-relay-js 创建这样的模式。
现在我的问题:
- 我真的需要在前端和后端创建架构吗?
- 教 Relay 我的架构有什么意义,因为后端已经使用架构来返回格式正确的数据?
- 在这种情况下使用 Relay 有什么好处?如果我只通过常规 REST 端点以及 GraphQL 查询作为参数访问后端,我会失去什么?
【问题讨论】:
标签: c# reactjs asp.net-core graphql relay