GraphQL工具“不允许”

问题描述

我有一个GraphQL API,该API由我实现的权限系统控制。

我尝试使用Graphql-shield,但是如果客户端请求禁止字段,我不想在整个请求中出错,所以我实现了自己的权限系统。

现在,我需要解决一个问题:

我实现权限系统的方式意味着检查每个字段是否被允许,如果不允许,则返回null。但是,我想返回一些指示,表明该字段实际上不是空的,但是该字段是“不允许的”。

我考虑过两种方法:

  • 在每次检查期间,我都将一些不可访问的字段附加到某个查询范围的变量中,并将其与查询一起返回(可能在某种中间件中)
  • 我使用“ permitted”字段扩展架构中的所有对象,并在其中返回权限值

有什么建议吗?

解决方法

恕我直言,这不值得付出努力... api常见问题或文档(可在graphiql / playground中找到)可以包含有关“意外的null”,ACL响应等的通知。对于大多数用例而言,就足够了。

如果您仍想在响应扩展中包括一些[debug]信息,则为https://github.com/apollographql/apollo-tracing,在这种情况下:

  • 只需附上“拒绝现场访问” [结构化]通知的列表;
  • 在总的响应返回之前,在某个上下文对象中(从解析器中/从解析器中)收集它们,并附加到中间件(?)中;

也使其可配置(调试模式)。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...