У меня есть приложение 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».Есть идеи как это сделать?