Клиент ретрансляции для существующего рабочего сервера GraphQL?
У меня есть рабочий сервер tinySQL GraphQL, работающий на 127.0.0.1:3000. Я хотел бы создать для него любой работающий клиент Relay. Я имею в виду любой рабочий пример для запроса:
{
groupBy (age: 20, job: "student") {
id,
name,
age,
job
}
}
это будет выводить в компоненте React что-то вроде этого:
{
"data": {
"groupBy": [
{
"id": 1,
"name": "Marie",
"age": 20,
"job": "student"
},
{
"id": 5,
"name": "Jessie",
"age": 20,
"job": "student"
}
]
}
}
Самое главное, я хочу иметь возможность устанавливать IP-адрес хоста GraphQL и порт, а также не хочу ничего менять в коде сервера GraphQL. Возможно ли это сделать? Можно ли сделать это без babelRelayPlugin.js, babel-relay-plugin, webpack, webpack-dev-server или каких-либо других фокусов?
РЕДАКТИРОВАТЬ:
Я имею в виду:
class App extends React.Component {
render() {
return (
<div>
// Simple example here?
</div>
);
}
}
Relay.injectNetworkLayer(
new Relay.DefaultNetworkLayer('http://127.0.0.1:3000')
);
const AppContainer = Relay.createContainer(App, {
// Simple example here?
});
ReactDOM.render(
// Simple example here?
);
Кто-нибудь? Можно ли сделать это так?
1 ответ
Насколько я знаю, с Relay это невозможно. Вам нужно не только использовать встраиваемые плагины Relay, но и ваш сервер также должен соответствовать спецификации Relay GraphQL.
Однако существуют альтернативы Relay, которые требуют гораздо меньшего количества шаблонов, например, Apollo Client или Lokka. Если вы ищете хорошую интеграцию с React, то Apollo Client, вероятно, является правильным выбором для того, что вы описываете.
Полное раскрытие: я вкладчик в Apollo Client