graphql - 如何在 GraphQL API 中有一个根查询/变异参数?
问题描述
我需要有一个“全局参数”,可以(最多)一次指定并应用于整个请求(但内部有许多查询/突变)。如果我能够让客户指定它query(arg: "value") {...}
和/或mutation(arg: "value") {...}
我会......但我知道这是为“变量”保留的。我不喜欢我知道的其他选择:
- HTTP 标头 - 仅将其与 HTTP 相关联,不在模式中,没有很好地记录。
POST /graphql
X-MyArg: some-value
...
{"query":"{someQuery{id name}}"}
- HTTP(URL)查询字符串参数 - 呃......我喜欢单个常见的 URL,也与(1)相同的问题
POST /graphql?myArg=some-value
...
{"query":"{someQuery{id name}}"}
- 引入一个中间包装字段来公开这个参数......但这会使一切变得更长,而且我不知道有一种说法“必须最多指定/请求一次”,而支持多次出现至少对某些人来说没有意义其中(例如身份验证/授权/安全相关等)。
POST /graphql
...
{"query":"{wrapper(arg: \"some-value\"){someQuery{id name}}}"}
- 作弊/破解并要求指定一个
$arg
变量(意味着由 API 客户端定义),同时以某种方式防止我正在使用的框架在该变量实际上没有从内部任何地方引用时抛出。
POST /graphql
...
{"query":"query($arg:String){someQuery{id name}}","variables":{"arg":"some-value"}}
任何人都可以帮忙吗?我是错过了什么,还是我真的被迫选择其中一种毒丸?
解决方案
推荐阅读
- mysql - mysql - 如何仅更新从多个重复行中找到的第一行
- swiftui - 如何导出 .drawing 文件
- java - 如何在spring boot中保存对数据库的响应
- python - Jinja 不从应用程序导入表情数据
- javascript - 从 django settings.py 访问模板中脚本标签 src 的 API 密钥
- javascript - 打印由空格 js 分隔的所有字符
- python - 用于循环文件夹图像的烧瓶
- python - 如何将逗号放入整数输入中?
- php - 如何使用回收站视图一次加载 SQL 数据
- android - 任务:expo-location:compileDebugJavaWithJavac FAILED