Apollo GraphQL schema + codegen 将 Hasura/PostgreSQL 标量数组转换为标量
Apollo GraphQL schema + codegen converting Hasura/PostgreSQL scalar array to scalar
我正在使用 Hasura 为 PostgreSQL table 提供 GraphQL 接口。如果我有一个 table 和一个 integer[]
列,命令 apollo schema:download
生成一个 schema.json
具有:
{
"name": "distances",
"description": null,
"type": {
"kind": "SCALAR",
"name": "_int4",
"ofType": null
},
"defaultValue": null
}
这很不幸,因为它没有传达这个字段是一个数组的信息。自然地,当我使用 apollo codegen:generate
时,如果使用 --passthroughCustomScalars
标志,类型要么变形为 String
,要么只是 _int4
。
有没有办法配置我的 graphql 服务器 (Hasura) 或 apollo CLI 来保留数组类型信息?
原来_
前缀已经可以是一个数组类型的指标了。我不确定其他情况是否会导致类型名称 _int4
但在我的用例中我可以安全地假设 int4
来自 Integer
而 _int4
来自Integer[]
.
这样我就可以使用 --passthroughCustomScalars
并为我的 Apollo SDK 提供类型别名,以将 apollo codegen:generate
的 _int4
输出识别为整数数组并定义适当的 JSON encode/decode 方法。代码生成工具有点粗糙,但可以管理。
我正在使用 Hasura 为 PostgreSQL table 提供 GraphQL 接口。如果我有一个 table 和一个 integer[]
列,命令 apollo schema:download
生成一个 schema.json
具有:
{
"name": "distances",
"description": null,
"type": {
"kind": "SCALAR",
"name": "_int4",
"ofType": null
},
"defaultValue": null
}
这很不幸,因为它没有传达这个字段是一个数组的信息。自然地,当我使用 apollo codegen:generate
时,如果使用 --passthroughCustomScalars
标志,类型要么变形为 String
,要么只是 _int4
。
有没有办法配置我的 graphql 服务器 (Hasura) 或 apollo CLI 来保留数组类型信息?
原来_
前缀已经可以是一个数组类型的指标了。我不确定其他情况是否会导致类型名称 _int4
但在我的用例中我可以安全地假设 int4
来自 Integer
而 _int4
来自Integer[]
.
这样我就可以使用 --passthroughCustomScalars
并为我的 Apollo SDK 提供类型别名,以将 apollo codegen:generate
的 _int4
输出识别为整数数组并定义适当的 JSON encode/decode 方法。代码生成工具有点粗糙,但可以管理。