我试图了解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将是标准键,并且游戏就像是用于检索用户游戏的特定目的的特殊键,但是,游戏对象的语法将遵循相同的标准格式作为整体数据对象。
然后在服务器上,Mongo查询看起来像这样:
db.collection(data.db).find(params)
然后以某种标准化的方式过滤掉无关的Mongo字段并回复客户端。
我是JS的初学者,但我认为你也可以根据某些特殊键(例如上面的“游戏”)是否包含在数据对象中来链接承诺。
这似乎与GraphQL实现了相同的好处,复杂性更低。 GraphQL还有哪些其他好处,一个简单的JS等价物没有?