Apollo GraphQL:解析器和模型之间的服务层

Apollo GraphQL:解析器和模型之间的服务层,graphql,apollo,Graphql,Apollo,一般来说,我不熟悉阿波罗和GraphQL。我有一个架构/最佳实践问题 目前,我的解析器直接调用模型层,但我觉得需要在两者之间添加一个服务层。主要原因是我的一个解析器有很多步骤,其中一个是已经在另一个解析器中实现的逻辑 例如,TypeA和TypeB类型A实体包含1个类型B实体。 我有我的解析器来创建一个实体TypeB,其中包含一些逻辑,比如自动生成的代码。 我希望我的解析器创建一个实体TypeA,以便在需要时调用TypeB的创建。(例如,下拉菜单中的经典Other选项可自动填充数据库) 我想做的是

一般来说,我不熟悉阿波罗和GraphQL。我有一个架构/最佳实践问题

目前,我的解析器直接调用模型层,但我觉得需要在两者之间添加一个服务层。主要原因是我的一个解析器有很多步骤,其中一个是已经在另一个解析器中实现的逻辑

例如,
TypeA
TypeB
<代码>类型A实体包含1个
类型B
实体。 我有我的解析器来创建一个实体
TypeB
,其中包含一些逻辑,比如自动生成的代码。 我希望我的解析器创建一个实体
TypeA
,以便在需要时调用TypeB的创建。(例如,下拉菜单中的经典
Other
选项可自动填充数据库)

我想做的是拥有链
resolver->service->model

对于
TypeB

  • 我的解析器将对请求进行一些检查(例如授权)并调用服务
  • 我的服务层将处理自动生成的代码并调用模型
对于
TypeA

  • 我的解析器还将对请求进行一些检查。然后就
    TypeA
    实体呼叫服务
  • 这个
    TypeA
    服务有一些业务逻辑,调用模型,并可以选择调用关于
    TypeB
    实体的服务

我找不到太多关于它的文档。。。这是要走的路还是我错过了其他东西?

只是上面有graphql[访问层之一]的微服务?你是说像处理身份验证/授权的
API网关一样的东西吗?我仍然需要
解析器A
来使用
解析器B
中的逻辑。或者你的意思是拥有一个具有高级逻辑的微服务,调用第二个具有原子操作的微服务?只要读一读微服务(arch)忘记graphql顶层(解析程序a调用解析程序B)-它们是如何分离的,它们是如何紧密耦合的,他们如何交流-auth/user是服务的一个想法,但我不会把我的应用程序分成两个微服务。我的A型和B型连接得太紧了。我对GraphQL服务器内部的体系结构实践更感兴趣。当有人需要从一个解析器调用另一个解析器时,应该怎么做。