微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 apollo graphQL 服务器的枚举值中放置特殊字符?

如何解决如何在 apollo graphQL 服务器的枚举值中放置特殊字符?

我在 apollo-graphQL 中的枚举类型有问题,我在 nodejs 中使用 apollo-server。 问题是我不能使用带有像 image/jpeg 或 svg+xml 这样的值的字符串。 它给我的错误是这些值无法解析为枚举。

Enum values

enter image description here

谁能告诉我如何解决这个问题?

解决方法

不幸的是,答案是您不能。根据 GraphQL 规范,enum is defined as

Name 但不是 truefalsenull

这里的“Name”指的是this definition,用正则表达式定义了一个“Name”

/[_A-Za-z][_0-9A-Za-z]*/

这意味着枚举(定义为“名称值”)只能有字母、数字或下划线,并且第一个字符不能是数字。此外,规范建议您使用“全部大写”,我读到的意思是“CONSTANT_CASE”。

如果枚举确实是您想要的,为了遵循规范的建议,您“应该”使用

enum ImageMimeTypes {
  IMAGE_APNG
  IMAGE_AVIF
  IMAGE_GIF
  IMAGE_JPEG
  IMAGE_PNG
  IMAGE_SVG_XML
  IMAGE_WEBP
}

虽然我个人也喜欢将我的枚举命名为单一常量大小写——只是为了它所代表的内容不那么令人惊讶——所以我可能会称它为 IMAGE_MIME_TYPE

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。