GraphQL架构中的特殊字符

时间:2017-08-18 12:19:01

标签: graphql graphql-js

是否有任何方法可以在GraphQL架构中启用特殊字符(例如,字段名称中的/:@

如果没有(我怀疑是这种情况)你是否知道修改node.js代码(https://github.com/graphql/graphql-js)以实现这种功能的相对最简单的方法是什么?

1 个答案:

答案 0 :(得分:7)

我建议不要这样做。 graphql-js遵循graphql规范中规定的语法形式。这样的更改将脱离规范,您的架构将不再适用于graphql工具。解析器会抛出一个无效的模式,因为这些字符在graphql中具有特殊含义。

GraphQL Spec

  

标点符号 ::其中之一! $()...:= @ [] {| }
  GraphQL文档包含标点符号以描述结构。 GraphQL是一种数据描述语言,而不是编程语言,因此GraphQL缺少通常用于描述数学表达式的标点符号。

http://facebook.github.io/graphql/#sec-Punctuators

  

名称 :: / [_ A-Za-z] [_ 0-9A-Za-z] * /
  GraphQL查询文档充满了命名的东西:操作,字段,参数,指令,片段和变量。所有名称必须遵循相同的语法形式。 GraphQL中的名称区分大小写。也就是说,name,Name和NAME都引用不同的名称。下划线很重要,这意味着other_name和othername是两个不同的名称。 GraphQL中的名称仅限于此可能字符的ASCII子集,以支持与尽可能多的其他系统的互操作。

http://facebook.github.io/graphql/#sec-Names