dart RestApi和GraphQL有什么区别?请给予我举个例子

luaexgnf  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(105)

我想调用weather API,我对graphQl和restApi没有太多概念,我无法决定哪个API适合在服务器上命中请求。为什么我们使用GraphQl,webhook,而rest API可以轻松调用API。
在此之前,我已经在restapi上工作了,它很容易管理,给予我请求的全部细节。现在我想用graphQl来做天气API。

yduiuuwa

yduiuuwa1#

区别在于它们不具有可比性。
REST是一种表述性状态转移(软件架构风格)。
API是一种应用程序编程接口。
GraphQL是一种用于API的查询语言,也是一个服务器端运行时,用于使用您为数据定义的类型系统执行查询。
也就是说,API的查询语言与具象状态传输的应用程序编程接口不同。
P.S.
此外,你没有就此事的是非曲直提出任何报告。
你没有给给予任何错误的例子,你自己的,会导致你陷入绝望的境地。(stack overflow)。

icnyk63a

icnyk63a2#

REST和GraphQL都是用于通过互联网获取和操作数据的API(应用程序编程接口),但它们具有不同的原理和结构。
在REST中,您通常从特定URL获取数据:

GET /users/12345  <--- to get user details
GET /users/12345/posts  <--- to get posts by that user

字符串
另一方面,在GraphQL中,您可以在单个查询中指定所需的数据,而不管涉及的资源如何。这可以避免数据的过度提取和不足提取。

{
  user(id: 12345) {
    name
    posts {
      title
    }
  }
}


一些关键的差异:

版本

  • 如果代码中有重大更改(例如,v1,v2),REST提供了一个很好的版本控制策略。
  • GraphQL通常不提供版本控制,相反,你只需要更新你的模式。
    错误处理
  • 在REST中,您通过返回特定的HTTP状态码来处理错误,以指示各种类型的错误(例如400,500)
  • 即使有错误,GraphQL通常也会返回200 OK状态,但错误是在响应主体中提供的-您返回的响应包括“errors”字段,一个或多个错误对象的数组。

它们各有利弊,合适的工具取决于项目的具体需求。一般来说,REST仍然被广泛使用,对于某些应用程序可能更简单,而GraphQL更适合于灵活性和数据效率至关重要的复杂系统。

相关问题