REST API маршрутизатор переходит к конечной точке Apollo GraphQL - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть приложение node / express / Apollo для предоставления сервиса GraphQL для внешнего интерфейса.У меня также есть конечная точка REST API в приложении для предоставления сервиса для устаревших приложений.Я хочу перенаправить вызовы API REST на конечную точку GraphQL.Например:

От

GET /api/roles

до

POST /graphql

   { *body* }

Я пытался так:

// app.js

import express from 'express';
import { ApolloServer } from 'apollo-server-express';
import routes from './routes';

const port = process.env.PORT || 8088;
const app = express();

app.use('/api/roles', routes.role);

const server = new ApolloServer({
     ......  
  },
});

server.applyMiddleware({ app, path: '/graphql' });

app.listen({ port: port }, () => {
  console.log(`Apollo Server on http://localhost:${port}/graphql`);
});

// route / role.js

import { Router } from 'express';

const router = Router();

router.get('/', (req, res, next) => {
  req.url = '/graphql';
  req.originalUrl = '/graphql';
  req.method = 'POST';
  req.body = `
      {
          findRoles {
              data {
                  roleId
                  name
              }
          }
      }`;

  return router.handle(req, res, next);
});

Не работает и выдает ошибку «Cannot POST / graphql».Есть идеи как это сделать?

...