我已经为此找到了一个Google,但似乎找不到答案。
我有一个GraphQL类型,如下所示:
type Ticket {
id: Int!
bandID: Int!
band: Band
ticketURL: String!
price: Int!
date: String!
}
我希望能够从MSSQL,GraphQL和JS返回这样的内容:
[
{
id: 1,
ticketURL: "https://example.co.uk",
price: 50,
date: "2019/01/01",
band: {
id: 1,
name: "Band name"
}
}
]
返回这样的数据结构的最有效方法是什么?首先想到的是类似下面的内容,但似乎如此效率低下且错误。
// Call SQL to get all tickets: "SELECT * FROM Ticket"
// For each ticket
// Call SQL to get the Band
// Merge with the ticket obj
答案 0 :(得分:0)
通常来说,我鼓励您不要为自己描述的内容开枪。 GraphQL规范的设计原则鼓励您确保您的API逻辑专门满足客户的需求,并且如果替换您的GraphQL时出现了更适合您需求的东西,那么您应该能够删除GraphQL层并进行替换无论新事物是什么,都无需重写逻辑。根据GraphQL的发明者,这个特定的要求与API紧密耦合。对于大多数人来说,数据库的延迟并不是需要这种优化的足够大的瓶颈。相反,我鼓励您使用数据加载器(用于缓存和批量请求),仅编写解析器来调用ORM或获取这些数据点的任何东西。