Graphql.jsx 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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(props) {
  8. super(props);
  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: props.api ? props.api : 'http://service-7po2y2xb-1254337200.ap-beijing.apigateway.myqcloud.com/graphql'
  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. componentWillReceiveProps(next) {
  20. this.setState({
  21. api: next.api ? next.api : 'http://service-7po2y2xb-1254337200.ap-beijing.apigateway.myqcloud.com/graphql'
  22. })
  23. }
  24. graphQLFetcher = (graphQLParams) => {
  25. // 已经存在的 magazine api, 设想: 用户生成 schema,返回 api 自动替换这里
  26. return fetch(this.state.api, {
  27. method: 'post',
  28. headers: {'Content-Type': 'application/json'},
  29. body: JSON.stringify(graphQLParams),
  30. }).then(response => response.json());
  31. };
  32. render() {
  33. return (
  34. <div>
  35. {/*<Alert message="online 数据库,非开发环境请移除"*/}
  36. {/*type="warning" banner closable/>*/}
  37. <Input style={{marginTop: 10}} addonBefore="POST" defaultValue={this.state.api}
  38. onChange={(e) => {
  39. this.setState({api: e.target.value})
  40. }}/>
  41. <GraphiQL fetcher={this.graphQLFetcher}/>
  42. </div>
  43. )
  44. }
  45. }
  46. export default Graphql;