我有一个rest API,该API返回一个带有ID列表的对象,其中每个ID都有计数。
{
"orders": {
"PMY5XbR7FZo5qEkEb": 0
}
}
我不知道订单对象的键要提前多少,也不知道会有多少键。
This question's response建议使用JSON类型,这是有风险但可行的。
问题是,这不适用于graphQL瑜伽服务器:
type Task {
orders: JSON
}
如何在瑜伽服务器中引用JSON类型?
答案 0 :(得分:1)
您需要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结果直接传递给此表单。