我试图了解 GraphQL 的优势是什么。我读过有关减少端点数量和服务器响应复杂性的文章,但似乎仅使用 JS 也可以实现相同的结果。
这是一个可以作为 JSON 发送到带有 MongoDB 的节点服务器的数据对象的示例。这将是客户端正在检索用户信息的游戏应用程序的示例:
let data = {
db: "users",
params: {_id: "xxxxx"},
fields: ["username", "level"],
games:
{
db: "games",
params: {userID: "xxxxx"},
fields: ["opponent”]
}
}
在此示例中,db、params 和 fields 将是标准键,而 games 就像一个特殊键,用于检索用户游戏的特定目的,但是,游戏对象的语法将遵循与整体相同的标准格式数据对象。
然后在服务器上,Mongo 查询看起来像这样:
db.collection(data.db).find(params)
然后,您将以某种标准化的方式过滤掉无关的 Mongo 字段并响应客户端。
我是 JS 的相对初学者,但我认为您也可以根据数据对象中是否包含某些特殊键(例如,上面的“游戏”)来链接承诺。
这似乎实现了与 GraphQL 相同的好处,但复杂性更低。GraphQL 还有什么其他的好处是普通的 JS 没有的?