Graphql.jsx 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import React, {Component} from 'react';
  2. import { Input, Alert} from 'antd';
  3. import GraphiQL from "graphiql";
  4. import fetch from "isomorphic-fetch";
  5. import {graphqlUrl} from "../../../../config";
  6. class Graphql extends Component {
  7. constructor() {
  8. super();
  9. this.state = {
  10. // api: 'http://service-hnqzcew1-1254337200.ap-beijing.apigateway.myqcloud.com/release/graphql',
  11. // api: 'http://service-4i9xdoqo-1254337200.ap-guangzhou.apigateway.myqcloud.com/release/graphql',
  12. // api: 'http://service-ci2tk8iu-1254337200.ap-guangzhou.apigateway.myqcloud.com/release/graphql',
  13. // 便于开发调试,请删除并换成上面
  14. api: graphqlUrl
  15. // api: 'http://service-28dm054z-1254337200.ap-shanghai.apigateway.myqcloud.com/release/graphql'
  16. // api: 'http://service-acb8p44v-1254337200.ap-beijing.apigateway.myqcloud.com/release/graphql'
  17. }
  18. };
  19. graphQLFetcher = (graphQLParams) => {
  20. // 已经存在的 magazine api, 设想: 用户生成 schema,返回 api 自动替换这里
  21. return fetch(this.state.api, {
  22. method: 'post',
  23. headers: {'Content-Type': 'application/json'},
  24. body: JSON.stringify(graphQLParams),
  25. }).then(response => response.json());
  26. };
  27. render() {
  28. return (
  29. <div>
  30. <Alert message="下面的 graphql api 对应的是是 online 的数据库"
  31. type="warning" banner closable/>
  32. <Input style={{marginTop: 10}} addonBefore="POST" defaultValue={this.state.api}
  33. onChange={(e) => {
  34. this.setState({api: e.target.value})
  35. }}/>
  36. <GraphiQL fetcher={this.graphQLFetcher}/>
  37. </div>
  38. )
  39. }
  40. }
  41. export default Graphql;