Graphql 如何在apollo server中记录对已弃用字段的调用

Graphql 如何在apollo server中记录对已弃用字段的调用,graphql,apollo-server,Graphql,Apollo Server,我们使用@deprecated指令在模式中标记了一些字段。现在,我们想记录这些字段是否仍在使用我们的一些客户机。在不使用Apollo Studio的情况下,执行此操作的最佳方法是什么。如果您可以访问客户端代码,则可以利用来检查不推荐的用法。使用CLI,您只需执行以下操作: graphql-inspector validate DOCUMENTS SCHEMA 其中,DOCUMENTS是用于匹配包含查询的文件的全局模式,SCHEMA是指向用于验证的架构的指针。包含查询的文件可以是.graphql

我们使用
@deprecated
指令在模式中标记了一些字段。现在,我们想记录这些字段是否仍在使用我们的一些客户机。在不使用Apollo Studio的情况下,执行此操作的最佳方法是什么。

如果您可以访问客户端代码,则可以利用来检查不推荐的用法。使用CLI,您只需执行以下操作:

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


如果您没有访问客户端代码的权限,或者特别需要记录每个请求的不推荐使用情况,那么您可以编写自己的,并使用GraphQL Inspector来验证每个请求的解析文档。解析后的文档将从生命周期挂钩开始可用。有关如何编写自己的插件的完整示例,请参阅文档。

谢谢您的回答。由于我们必须使用第二个选项,我想知道从哪里获得
验证
功能所需的
源代码。检查
validate
的类型看起来它希望源代码是
Source
的列表,但是
validationDidStart
参数没有提供这一点,其中
Source
只是一个字符串。很抱歉,API的用法没有很好的文档记录。您应该从
graphql
导入
Source
,然后使用查询字符串创建类的实例。请查看正确用法的测试。就这样,非常感谢。按预期工作。是否有任何方法可以从错误对象中获取已弃用字段的名称