最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 请停止对API使用REST

    正文概述 掘金(前端充电桩)   2021-01-05   697

    作者:Hirwa Blessing

    许多开发人员更喜欢通过超文本传输协议发送数据,因为他们在创建应用编程接口时不需要安装额外的软件或库,尽管GraphQL通常是作为一种技术引入的,以取代传统的REST应用编程接口。在这篇文章中,我将解释这两者之间的好处、限制和区别,这将帮助您决定为下一个项目选择什么。所以废话不多说,让我们直接进入其中。

    什么是REST?

    REST(表示状态转移)是一种架构风格,用于在网络上的计算机系统之间提供标准,使系统之间更容易相互通信。通过REST,您可以分离客户端和服务器的实现,为了实现这一点,我们使用无状态操作,包括(GET、POST、P和DELETE)来发送和接收资源。 这种REST架构背后的想法是,您可以通过向资源的网址发出请求来检索资源,并获得响应(通常是JSON,但这取决于应用编程接口)。

    REST的好处

    • Rest是可扩展,因为它将客户端与服务器分开,并使您能够轻松扩展应用程序。
    • 灵活性REST的另一个优势,因为数据不与资源或方法绑定,因此REST可以处理不同类型的调用并返回不同的数据格式。

    REST的局限性

    过度获取:这是指API端点提供的信息远远超过客户端所需的信息。

    正在提取:这是指应用编程接口端点没有提供所有必需的信息。因此,客户端必须发出多个请求来获得应用程序所需的一切。

    我们将使用一个例子来很好地理解上面的概念

    什么是GraphQL?

    GraphQL是API的查询语言,也是使用现有数据实现这些查询的运行时。GraphQL为您的API中的数据提供了一个完整且易懂的描述,为客户提供了准确要求所需内容的能力,仅此而已。除此之外,它还允许您将不同的实体组合到单个查询中。

    GraphQL的好处

    • 检索精确的数据,没有任何额外的东西。在GraphQL中,你得到你所要求的,仅此而已,这很好。
    • 客户端的更快发展。通常,当数据需求发生变化时,您只需要修改查询,不需要太多变化,从而允许快速的产品迭代。客户端和服务器开发团队都可以独立工作,只要两个团队都知道数据的结构。即客户端和服务器实现彼此独立。

    比较两者的例子

    例如,让我们假设,我们正在显示一个用户的提要,其中包含该用户的帖子和his/her追随者的列表。在我们的例子中,我们必须显示帖子的作者、帖子以及该用户的追随者。 如果我们使用REST,我们至少会提出2或3个请求,类似于:

    • /user/获取用户(作者)详细信息可能的用户名。
    • /user//posts获取该用户发布的帖子列表。
    • /user//followers获取该特定用户的关注者列表。

    但在所有这些情况下,我们都在过度获取数据。例如,在第一个请求中,我们只需要名称,但是当我们使用这种方法时,我们得到了与用户相关的所有细节。 这是GraphQL展示其潜力的时候。我们需要指定查询,我们可以得到所需的输出。为了使用GraphQL实现相同的功能,我们可以使用类似于以下的查询:

    query {
      User(id: '123') {
        name
        posts {
          title
        }
        followers {
          name
        }
      }
    }
    

    通过使用这样的查询,我们将能够获得具有以下属性的JSON响应。干净简单,对吧?

    GraphQL vs REST

    综上所述,GraphQL和REST之间有一些突出的区别:

    1.数据提取

    REST会导致过度提取或不足提取**,而**GraphQL的情况并非如此。在GraphQL中,_你所要求的就是你所得到_的。

    2.对象定义(JSON响应)

    在REST中,您可以在后端定义请求对象,在GraphQL中,您可以在前端定义对象。

    3.自动缓存

    REST自动实现缓存,而GraphQL没有自动缓存系统,但是使用Apollo Client、Relay等客户端将使缓存成为可能。缓存使您的客户端能够响应相同数据的未来查询,而无需发送不必要的网络请求

    4.错误处理

    与GraphQL相比,REST中的错误处理要简单得多,GraphQL通常会给你一个200 OK的状态代码,即使有错误。但是,当使用Apollo Client、Relay等客户端时,很容易处理错误。

    结论

    GraphQL当然比REST有很多优势,但它可能并不总是最好的实现。就像我之前说的,选择取决于您的应用程序,是选择REST还是GraphQL。

    我希望这能帮助你在未来的项目中做出决定。如果您想分享有关GraphQL或REST的经验,请将它们放在评论部分。别忘了在推特上和我联系 领英。感谢您阅读?!


    起源地下载网 » 请停止对API使用REST

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元