0

我有运行在 127.0.0.1:3000 的tinySQL GraphQL 服务器。我想为它创建任何有效的中继客户端。我的意思是查询的任何工作示例:

{
  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"
      }
    ]
  }
} 

最重要的是我希望能够设置 GraphQL 主机 IP 和端口,并且不想更改 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?
);

任何人?有可能这样做吗?

4

1 回答 1

1

据我所知,Relay 是不可能的。您不仅需要使用 Relay 的 babel 插件,而且您的服务器还必须匹配 Relay GraphQL 规范。

但是,有一些替代 Relay 的替代方案需要更少的样板,例如Apollo ClientLokka。如果您正在寻找良好的 React 集成,那么 Apollo Client 可能是您所描述的正确选择。

全面披露:我是 Apollo Client 的贡献者

于 2016-06-07T21:56:39.997 回答