如何在 graphQL 瑜伽服务器中添加标量 JSON 类型?
How do I add a Scalar JSON type in graphQL yoga server?
我休息一下 API returns 一个包含 ID 列表的对象,每个 ID 都有计数。
{
"orders": {
"PMY5XbR7FZo5qEkEb": 0
}
}
我提前不知道订单对象的键是什么,也不知道会有多少键。
建议使用 JSON 类型,虽然有风险但可行。
问题是这不适用于 graphQL 瑜伽服务器:
type Task {
orders: JSON
}
如何在瑜伽服务器中引用 JSON 类型?
您需要explicitly declare scalar types才能使用它们。要使此模式起作用,您需要添加一个额外的声明:
scalar JSON
type Task {
orders: JSON
}
GraphQL 对标量值的内容一无所知,这意味着这会将额外的处理工作推给客户端(以验证和反序列化 JSON),这并没有真正描述你的对象模型。
您可以考虑重新安排后端响应以获得结构化程度更高的对象模型。作为一个 API 的消费者,我会发现它更容易理解和使用
type Order {
id: ID!
count: Int!
}
type Task {
orders: [Order!]!
}
但您不能直接将后端 REST API 结果传递给此表单而不重新排列它。
我休息一下 API returns 一个包含 ID 列表的对象,每个 ID 都有计数。
{
"orders": {
"PMY5XbR7FZo5qEkEb": 0
}
}
我提前不知道订单对象的键是什么,也不知道会有多少键。
问题是这不适用于 graphQL 瑜伽服务器:
type Task {
orders: JSON
}
如何在瑜伽服务器中引用 JSON 类型?
您需要explicitly declare scalar types才能使用它们。要使此模式起作用,您需要添加一个额外的声明:
scalar JSON
type Task {
orders: JSON
}
GraphQL 对标量值的内容一无所知,这意味着这会将额外的处理工作推给客户端(以验证和反序列化 JSON),这并没有真正描述你的对象模型。
您可以考虑重新安排后端响应以获得结构化程度更高的对象模型。作为一个 API 的消费者,我会发现它更容易理解和使用
type Order {
id: ID!
count: Int!
}
type Task {
orders: [Order!]!
}
但您不能直接将后端 REST API 结果传递给此表单而不重新排列它。