Я хочу создать веб-приложение с Javascript для внешнего интерфейса и C # для серверной части, и я хочу определить значение GraphQL.
- Для своей серверной части C # я использую реализацию GraphQL с именем GraphQL для .NET.
- В качестве внешнего интерфейса я хотел бы использовать Relay, поскольку он хорошо работает с ReactJS.
Теперь для своей серверной части я реализовал образец схемы, такой как в один из примеров, который выглядит так:
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
}
}
}
`,
}
});
В одном из примеров для Relay я видел, что для преобразования используется babel-relay-plugin. Он получает файл схемы (JSON). В руководстве по Начало работы Relay показано, как создать такую схему. с помощью graphql-js и graphql-relay-js.
Теперь мои вопросы:
- Мне действительно нужно создавать схемы спереди и сзади?
- В чем смысл обучения Relay моей схеме, поскольку серверная часть уже использует схему для возврата правильно сформированных данных?
- Какая вообще польза от использования Relay в этом сценарии? Что я потеряю, если просто получу доступ к бэкэнду через обычную конечную точку REST вместе с запросом GraphQL в качестве параметра?