neo4j - 在 Neo4j Graphql Apollo 服务器类型定义中如何添加带空格的名称?
问题描述
我的类型定义是这样的
type COMPANY {
"AIRLINE SEGMENT": String
AIRLINE_TYPE: String
}
我收到一条错误消息
apollo server GraphQLError: Syntax Error: Expected Name, found :
如果我删除空格和引号,那么我不会收到错误消息。我到处搜索,但我没有办法在其中添加带有空格的名称。
任何帮助将不胜感激。谢谢。
解决方案
GraphQL 不支持名称中的空格。根据规范,名称必须匹配以下正则表达式:
/[_A-Za-z][_0-9A-Za-z]*/
GraphQL 实际上会忽略文档中的所有空白,字符串和注释中的空白除外:
空格用于提高源文本的易读性并充当标记之间的分隔符,并且任何数量的空格都可以出现在任何标记之前或之后。标记之间的空格对于 GraphQL 文档的语义意义并不重要,但是空格字符可能出现在字符串或注释标记中。
您可能首先不应该在节点名称中使用空格,即使它们在技术上得到支持。这是推荐的命名约定:
驼峰式,以大写字符开头
如果您的数据源返回的对象的字段名称包含空格,您可以在解析器映射中将这些字段转换为“合法”字段名称。例如,给定一个名为 的类型Company
,其字段名为airlineSegment
:
const resolvers = {
Company: {
airlineSegment: company => company['AIRLINE SEGMENT']
}
}
推荐阅读
- javascript - Jest 中的 module.export 单元测试问题
- arduino - 电机护罩未按预期移动
- reactjs - React useState 空数组类型
- android - 使用 Talkback 替换后 Fragment 的视图没有获得焦点
- android - 应为 BEGIN_ARRAY,但在第 1 行第 1 列路径 $ ....z 处为 STRING
- javascript - html canvas ctx.fillRect() 到鼠标位置
- swiftui - 当我将tableview放入scrollview并且tableview滚动被禁用时,ScrollView表现得很奇怪
- python-3.x - 名称:价格,数据类型:int64)' 是无效键
- swift - 在 Swift 中使用 UIAlertController 的 TextField 获取文本时遇到问题
- asp.net - 如何检查用户是否已授权?