graphqlServer.js 7.67 KB
var express = require('express');
var { graphqlHTTP } = require('express-graphql');
var { buildSchema } = require('graphql');

// Construct a schema, using GraphQL schema language
var schema = buildSchema(`
  type apiList {
    api: String
  }

  type Query {
    apiList: [apiList]
  }
`);

// The root provides a resolver function for each API endpoint
var data = {
    "apiList": [{
        "api": "hello"
    }],
    "resultCode": "20000",
    "resultDescription": "Success"
};

const extensions = ({
    document,
    variables,
    operationName,
    result,
    context,
  }) => {
    return {
        resultCode: "20000",
        resultDescription: "success"
    };
  };

var app = express();
// app.use('/graphql', graphqlHTTP({
//   schema: schema,
// //   rootValue: data,
//   graphiql: true,
//   extensions
// }));

app.use('/graphql', (req, res) => {
    console.log(req.body)
    res.status(200).send({
        "data": {
            "apiList": [{
                    "api": {
                        "_id": "635a05d5bc7f8b9de2595311",
                        "method": "GET",
                        "uri": "/api/v1/resource",
                        "description": "URI Description",
                        "exRequest": {
                            "header": [{
                                    "paramName": "test1",
                                    "isRequire": "1",
                                    "dataType": "String",
                                    "description": "test1"
                                }, {
                                    "paramName": "test2",
                                    "isRequire": "0",
                                    "dataType": "Object",
                                    "description": "test2.1",
                                    "paramObj": [{
                                            "paramName": "test2.1",
                                            "isRequire": "0",
                                            "dataType": "Object",
                                            "description": "test2.1",
                                            "paramObjParamObj": [{
                                                    "paramName": "test2.1.1",
                                                    "isRequire": "0",
                                                    "dataType": "Number",
                                                    "description": "test2.1.1"
                                                }
                                            ]
                                        }
                                    ]
                                }
                            ],
                            "exHeader": [{
                                    "text": "Request Header Example"
                                }
                            ],
                            "body": [{
                                    "paramName": "test1",
                                    "isRequire": "1",
                                    "dataType": "String",
                                    "description": "test1"
                                }, {
                                    "paramName": "test2",
                                    "isRequire": "0",
                                    "dataType": "String",
                                    "description": "test2"
                                }
                            ],
                            "exBody": [{
                                    "text": "Request Body Example"
                                }
                            ]
                        },
                        "exResponse": {
                            "header": [{
                                    "paramName": "test1",
                                    "isRequire": "1",
                                    "dataType": "String",
                                    "description": "test1"
                                }
                            ],
                            "exHeader": [{
                                    "text": "Response Header Example (Success)"
                                }
                            ],
                            "exHeaderErr": [{
                                    "text": "Response Header Example (Error)"
                                }
                            ],
                            "body": [{
                                    "paramName": "test1",
                                    "isRequire": "0",
                                    "dataType": "String",
                                    "description": "test1"
                                }, {
                                    "paramName": "test2",
                                    "isRequire": "1",
                                    "dataType": "String",
                                    "description": "test2"
                                }, {
                                    "paramName": "test3",
                                    "isRequire": "1",
                                    "dataType": "Object",
                                    "description": "test3",
                                    "paramObj": [{
                                            "paramName": "test3.1",
                                            "isRequire": "1",
                                            "dataType": "Number",
                                            "description": "test3.1"
                                        }, {
                                            "paramName": "test3.2",
                                            "isRequire": "0",
                                            "dataType": "Integer",
                                            "description": "test3.2"
                                        }
                                    ]
                                }
                            ],
                            "exBody": [{
                                    "text": "Response Body Example (Success)"
                                }
                            ],
                            "exBodyNoData": [{
                                    "text": "Response Body Example (Success no data)"
                                }
                            ],
                            "exBodyErr": [{
                                    "text": "Response Body Example (Error)"
                                }
                            ]
                        },
                        "customParams": [{
                                "customKey": "Custom Parameter key",
                                "customValue": "Custom Parameter value"
                            }, {
                                "customKey": "Custom Parameter key 2",
                                "customValue": "Custom Parameter value 2"
                            }
                        ]
                    },
                    "resource": {
                        "_id": "635a05d5bc7f8b51b3595310",
                        "resourceName": "Resource Name",
                        "resourceOwner": "supps305",
                        "systemName": "System Name",
                        "status": "Approved"
                    },
                    "microservicesDomain": {
                        "_id": "635a05d5bc7f8bf46b59530d",
                        "microservicesDomainName": "Microservices Domain",
                        "description": "Microservices Domain Description"
                    }
                }
            ]
        },
        "resultCode": "40101",
        "resultDescription": "Success"
    })
})
app.listen(4000);
console.log('Running a GraphQL API server at http://localhost:4000/graphql');