REST 与 GraphQL:面向开发者的 API 架构对比

REST 与 GraphQL:面向开发者的 API 架构对比-1

导读:本文以实践角度为各位开发者、技术人详解API中的两种重要架构风格,希望大家喜欢。

API 简介

API(应用程序编程接口的综合与)是软件与Web开发的核心支柱,为应用程序与数据库或服务器无缝通信和共享数据创建桥梁或链接。

API 架构风格有很多,有这两种风格最为流行,分别是:REST(表述性状态传输)和 GraphQL。两者均有一些优点和缺点。

本文指南将向各位介绍这些 API 架构、它们的原理、优点、缺点和用例。读完本文后,你将获得一些真实见解,可以对项目中使用的 API 架构做出更明智的决策。

我们深入研究 REST 和 GraphQL,比较它们的优缺点之后,希望能帮助更多开发者朋友做出正确的选择。REST 与 GraphQL:面向开发者的 API 架构对比-2

了解 REST API

REST是 REpresentational State Transfer 的缩写。

它是当今大多数服务器和网站上最常见的 API 架构风格。使用 REST 风格构建的 API 被称为 RESTful API。

RESTful API 将资源组织为统一资源标识符 (URI)。资源是 API 表示或与之交互的实体或对象。URI 区分服务器上的资源:它可以是用户资源、产品资源或图像资源,具体取决于你在后端服务器上构建的内容。

资源始终要以名词而不是动词分组。比如:

example/com/api/v1/user

而不是下面的样式:

example/com/api/v1/getauser

比如客户端想要从服务器检索用户详细信息,则客户端使用HTTP 代码向服务器发送针对用户资源的请求。

这里我们所讨论的资源就如同调用服务器上的用户数据表。

REST 的具体用例

Web服务:

REST 被广泛用于构建提供功能的 Web 服务。常见的例子有支付网关、天气服务、公共 API 等。

移动应用服务:

REST API 用于构建访问远程服务器的移动应用程序,从而可以很轻松地验证用户身份、处理事务、共享内容等。

物联网服务:

RESTful API 用于物联网设备与远程服务器通信,使服务器能够共享数据并从集中式网络接收命令。

第三方集成:

RESTful API 简化了不同系统或服务器之间的集成,使其适合数据交换、云服务和企业应用程序。

安全:

RESTful API 具有分层的 REST 系统,使其可扩展并能够在不存储客户端状态的情况下处理大量请求。

API文档:

RESTful API 允许客户端请求特定资源或该资源的表示形式(例如 JSON 或 XML),从而使其能够适应不同的客户端或最终用户的需求。