如何在nestjs微服务中使用graphql?

问题描述 投票:0回答:1

如何在nestjs微服务中使用graphql?

我们都知道 graphql 可以与 http 一起使用。

但是它可以被像nestjs微服务这样的微服务使用吗?

import { NestFactory } from '@nestjs/core';
import { Transport, MicroserviceOptions } from '@nestjs/microservices';
import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.createMicroservice<MicroserviceOptions>(
    AppModule,
    {
      transport: Transport.TCP,
      options: {
        port: 23001,
      },
    },
  );
  await app.listen();
}
bootstrap();

我们都知道nestjs中的graphql应该构建解析器,但是微服务应该使用具有MessagePattern和EventPattern的控制器。

graphql nestjs graphql-js nestjs-microservice
1个回答
0
投票

所以,是的,可以使用它。但有很多理由说明它不应该这样做。额外的复杂性,与后端应用程序的严格耦合,而不是那么容易转换为其他消息传递协议(例如从 HTTP 到 MQ - REST 具有易于序列化为非 REST 的任何结构)。

但是,是的,这是可能的。 GraphQL 对 JSON 请求主体和 JSON 响应进行操作。因此,这要么是常规控制器内的一些自定义解析,要么重写整个微服务逻辑以适应 Apollo 或 Mercurius - 以及执行上下文等。

那不值得 :) 我是说,我喜欢 GraphQL :)

© www.soinside.com 2019 - 2024. All rights reserved.