GraphQL查询中转义点:获取Stackrox响应labels时语法错误求助
解决GraphQL查询Stackrox带点labels字段的语法错误
问题场景
Stackrox返回的镜像元数据中,labels包含带点格式的键(如com.myorg.base.image):
"metadata": { "v1": { // ...其他字段 "labels": { "com.myorg.base.image": "artifactory.myorg.int/repo/distroless-java17.0.6:2023-02-13" } } }
直接在GraphQL中查询该字段时,触发语法错误:"message": "syntax error: unexpected \"myorg\", expecting \"\.\""
原因
GraphQL默认会将字段名中的.解析为对象嵌套访问符,而com.myorg.base.image是一个完整的单个键名,并非嵌套结构,因此直接查询会导致语法解析失败。
解决方法
在GraphQL查询中,用双引号包裹带特殊字符的字段名,明确告知解析器这是一个完整的字段:
query { image { metadata { v1 { labels { "com.myorg.base.image" } } } } }
如果需要给该字段起别名(方便后续处理),可以这样写:
query { image { metadata { v1 { labels { baseImage: "com.myorg.base.image" } } } } }
内容的提问来源于stack exchange,提问作者Naveen Kocherla
相关产品推荐
相关产品推荐

