使用GraphQL获取Directus数据库关系时遇验证错误求助
问题排查与解决
问题根源
你碰到的Cannot query field "relations" on type "Query"错误,本质是Directus的GraphQL API对系统集合的命名规则和REST API不同——官方文档里的示例是REST API的写法,而GraphQL中系统集合需要加system_前缀才能访问。
修正方案
- 修改查询语句
把原查询里的relations替换为system_relations,这是GraphQL对应系统关系数据的正确查询字段:
query { system_relations { collection field } }
- 确认权限配置
确保你用来发起请求的账号,在Directus后台的「角色与权限」设置中,拥有system_relations集合的读取权限。你之前能正常查boards是因为自定义集合的权限已经开启,但系统集合的权限默认是关闭状态,必须手动配置。
关于提示的说明
Postman弹出的「Did you mean "locations"?」只是GraphQL的模糊匹配提示,和你的问题完全无关,直接忽略即可——它只是在当前账号可访问的字段里找了个名称相似的选项,和系统关系数据没有关联。
内容的提问来源于stack exchange,提问作者EdMadd
相关产品推荐
相关产品推荐

