如何记录对 apollo 服务器中已弃用字段的调用

How to log calls to deprecated fields in apollo server

我们使用 @deprecated 指令在我们的模式中标记了一些字段。现在我们要记录这些字段是否仍在我们的一些客户中使用。如果不使用 Apollo Studio,最好的方法是什么。

如果您有权访问客户端代码,则可以利用 GraphQL Inspector 检查已弃用的用法。使用 CLI,您只需执行以下操作:

graphql-inspector validate DOCUMENTS SCHEMA

其中 DOCUMENTS 是一个 glob 模式,用于匹配包含查询的文件,SCHEMA 是指向用于验证的模式的指针。包含查询的文件可以是 .graphql 文件或 .js/.ts 文件。模式指针可以是指向您的模式的 URL 或一个或多个具有您的模式类型定义的 .graphql 文件。有关提供架构和文档的其他方法,请参阅 here and here

如果您无权访问客户端代码,或者特别需要在每个请求上记录弃用的用法,那么您可以编写自己的Apollo Server plugin and utilize GraphQL Inspector's programmatic API instead to validate each request's parsed document as it comes in. The parsed document will be available beginning with the validationDidStart生命周期钩。有关如何编写自己的插件的完整示例,请参阅文档。