gpt4 book ai didi

rest - GraphQL 比 REST 好在哪里?

转载 作者:行者123 更新时间:2023-12-05 06:36:46 28 4
gpt4 key购买 nike

我想确保我了解 GraphQL 的工作原理。这是我对 GraphQL 优于 RESTful API 的一种理解。假设您有一个 user 模型:

{
user: {
firstName: "John",
lasName: "Smith",
username: "jsmith",
email: "jsmith@company.com",
gender: "M",
password: "password"
}
}

然后,您调用 API 以获取您应用的个人资料页面的此用户信息。假设您只需要用户的 firstName(可能显示欢迎消息)。

axios.get(get_user_info_url).then(res => {
const firstName = res.data.user.firstName
})

所以,这里发生的是来自服务器的 res 包括该用户的所有信息,其中包括我们不关心的数据(例如他的用户名电子邮件)。这意味着服务器正在下载此用户的所有 数据,并将其发送回客户端。但是,客户端只关心firstName,其他的基本无视。因此,如果 user 模型有几十个(或数百个)属性,我们就会过度获取,因为我们正在下载根本不需要的数据。

在此示例中,要获取他的名字,我们必须设置 res.data.user.firstName。然而,使用 GraphQL 时,服务器发回用户的firstName,而不是他的其余信息。因此,使用 GraphQL,我们不会从服务器下载整个用户模型(过度获取)。相反,我们只下载我们需要的数据(比如他的 firstName)。如果用户有几十个属性,这将是有益的,因为我们只会获取/下载我们实际需要的数据。

这种对 GraphQL 的理解是否正确?

最佳答案

我相信 GraphQL 更适用于当您知道您需要的数据远不止一个字段时。它有助于避免字段和属性的“过度获取”。与 REST 相比,它让您有机会通过减少对服务器的请求来获取它,从而减少延迟。两个通信接口(interface)都有 t heir drawbacks ,但作为任何工具,它们都和持有它们的人一样好:)

关于rest - GraphQL 比 REST 好在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48851007/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com