在微服务架构中,我确实有被认为是由最终用户使用的 GraphQL 突变,还有一些只是内部的。
我打算搬到阿波罗联邦。是否有一种内置方法可以将突变声明为意外,以便最终用户无法访问但可以由内部服务直接调用?
我不确定最好的设计是什么;我不希望最终陷入必须为微服务运行两台不同服务器的情况:一个公共服务器和一个私有服务器。
在微服务架构中,我确实有被认为是由最终用户使用的 GraphQL 突变,还有一些只是内部的。
我打算搬到阿波罗联邦。是否有一种内置方法可以将突变声明为意外,以便最终用户无法访问但可以由内部服务直接调用?
我不确定最好的设计是什么;我不希望最终陷入必须为微服务运行两台不同服务器的情况:一个公共服务器和一个私有服务器。
简而言之:不,没有一种内置的或传统的方法可以将部分模式声明为“私有”。您可以设计自己的@private
架构指令,它可以使用需要服务 API 密钥而不是用户访问令牌的身份验证检查来包装解析器。这些突变在您的模式中仍然可见——也就是说,它们可能会出现在任何自动生成的 API 文档中——但它们实际上不会被普通用户使用。在这个 Apollo Server issue中,一位 Apollo 开发人员提到了为此目的提供内置@internal
指令的计划,但它似乎还不可用。