5 种最流行的 API 风格及其与众不同之处

WebscrapingAPI 于 2021 年 8 月 25 日

博客图片

我们很容易把所有的应用程序接口归为一堆,说它们都是一样的东西。但这其实并不准确。

当然,它们都是应用程序编程接口(Application Programming Interfaces),所有这些接口都是不同产品或服务之间的桥梁,无需重写即可实现正确集成。虽然每个人都可以自由设计和构建自己的软件,但几乎所有的应用程序接口都符合(至少部分符合)明确定义的样式。这些指南旨在保持 API 的统一性和维护 API 的主要目标:简化集成和通信。

如果您对设计 API、集成 API 感兴趣,或者只是想了解一些令人兴奋的软件,那么请继续阅读。我们将介绍最流行的 API 风格,并探讨每种风格的不同之处。

但请记住,所有风格都有其优缺点。在选择时,应根据使用案例、用户需求和开发人员的能力来决定。

5 种最常见的 API 风格

在用例方面,值得一提的是,API 可以是公开的、向合作伙伴开放的,也可以是完全内部的。这第一个区别为许多需要开发的特性和功能设定了标准:如何存储和共享数据、如何处理凭证、API 需要多少流量等。

正如你所看到的,以下建筑风格可用于这三种情况中的任何一种,但有些组合比其他组合更有意义。

1.REST API

这是目前最常见的应用程序接口,也是我们用来构建WebScrapingAPI 的风格。其缩写是 "REPresentational State Transfer"(呈现状态传输)的缩写,这种风格规定,如果您作为客户端提出请求,应用程序接口将发回您所请求的资源的状态表示。

RESTful API 在很大程度上基于 HTTP 基础架构。由于网络一般主要使用 HTTP,REST API 具有易于理解、集成和使用的优势。

这种风格也是由 API 必须遵守的一系列约束条件定义的。虽然一开始听起来很麻烦,但这些约束可以确保应用程序接口以可预测和有益的方式运行。一共有六个,它们是这样的

  • 统一界面
  • 无国籍
  • 可缓存
  • 客户端-服务器
  • 分层系统
  • 按需编码

我们已经在 Medium 上发表了一整篇关于这些限制的文章,请查看这篇文章,了解有关 REST API 的更多细节。

如果一个应用程序接口遵守了其中的一些限制,但没有遵守所有限制,那么它们就可以被称为类 REST。对于某些用例,这些约束带来的麻烦可能会多于好处,这就是为什么你可能会遇到部分采用这种风格的情况。

2.SOAP 应用程序接口

SOAP 或简单对象访问协议(Simple Object Access Protocol)在很大程度上依赖于 XML。要使用它,就必须遵守有关信息结构、编码规则以及处理请求和响应的严格标准。

SOAP 应用程序接口虽然非常精确和广泛,但由于其标记语言的原因,使用起来可能比较困难。请求和响应可能会变得相当冗长和复杂,如果手动键入命令,就会很麻烦。

从好的方面看,这种方式具有内置错误处理功能的优势。如果您在请求中遇到问题,响应将包含大量有价值的信息,可以帮助您找到并纠正错误。

3.GraphLQ 应用程序接口

这种方式用于通过 HTTP 从客户端应用程序查询数据库。不过,您可以只发布一个 "查询",就能获得所需的全部信息,而不用向不同的端点发送多个 HTTP 请求。从本质上讲,客户端只需描述一次所需的内容,应用程序接口就会尽力检索这些数据。

在 GraphLQ 架构下运行的服务器会为可请求的数据预制一个模型(或模式)。因此,当您发出请求时,该模式将作为您可以请求的内容、信息的结构以及如何与服务器交互的指南。

这种系统的优势在于用户可以清楚地了解他们可以获得什么,因此检索到错误数据或遇到错误的可能性很小。其基本原则是将客户放在首位,为他们提供最佳体验。

4.Falcor API

与 GraphLQ 类似,Falcor API 也会创建一个虚拟 JSON 文件,作为客户端请求后接收数据的容器。该虚拟文件可根据客户需要的每项新数据进行扩展。这虽然增加了便利性,但随着时间的推移,文件可能会变得很大。

幸运的是,您不必在每次请求时都检索整个 JSON 文件。相反,您可以随时指定您需要的部分,并在响应中获取这些部分。这是因为 JSON 文件发布在一个 URL 下,并链接到后台的不同资源。从本质上讲,您可以在虚拟文件中浏览您想要的数据。

客户端和服务器之间的虚拟层有助于将两者连接起来,同时保持两者的架构完全独立。

5. gRPC

在设计应用程序接口时,如果需要考虑的限制较少,gRPC 应该是首选之一。它与语言无关、与平台无关,而且由于使用协议缓冲区(protobufs)将数据序列化为二进制流,因此速度相当快。然后通过 HTTP/2 传输数据。

gRPC 非常适合分布式系统。这种风格最重要的一点是程序。你可以在本地机器和远程设备上运行它们。在这两种情况下,调用存储过程都非常快速和简单。

应用程序接口变得流行的原因之一是,与传统的单一服务软件模式相比,独立的微服务更具优势。这样,每个功能/微服务都可以单独设计、开发和更新,而不会影响其他组件。从这个意义上说,gRPC 是将这一切联系在一起的绝佳解决方案。

此外,由于可以远程启动程序,它也非常适合将移动设备连接到后台服务。

如何选择正确的应用程序接口

本文为您概述了最常见的 API 架构风格,但这还不足以确保您选择正确的架构风格。对我们团队来说,尽可能多地使用第一手实际经验至关重要。

我所说的经验,既指作为用户的经验,也指作为开发人员的经验。毕竟,也许有一种风格是你比较熟悉的,因此构建起来会比较容易,但你必须设身处地地为最终用户着想,看看对他们来说效果如何。

风格不是你可以在开发过程中随便选择的,也不是你可以在以后随便切换的。它是一本规则手册,决定了 API 如何成型。因此,这是一个重大的决定。

您可以采取的第一步是阅读市场上已有的应用程序接口的文档,最好对其进行测试。如果以前有过构建应用程序接口的经验,那将会是一大优势。

如果您想了解我们是如何将 WebScrapingAPI 塑造成现在这样一个强大的网络抓取工具的,不妨 查看我们的文档。目前的功能也并非都是发布时就有的。我们应用户的要求添加了 REST API 端点或文件刮擦等选项,因此请记住:架构风格旨在为你指明方向,但如何将 API 塑造成人们喜爱的产品则是你的工作。

新闻和更新

订阅我们的时事通讯,了解最新的网络搜索指南和新闻。

We care about the protection of your data. Read our <l>Privacy Policy</l>.Privacy Policy.

相关文章

缩图
指南如何抓取亚马逊产品数据:最佳实践与工具综合指南

通过我们的深入指南,探索刮擦亚马逊产品数据的复杂性。从最佳实践和亚马逊 Scraper API 等工具到法律注意事项,了解如何应对挑战、绕过验证码并高效提取有价值的见解。

Suciu Dan
作者头像
Suciu Dan
15 分钟阅读
缩图
网络抓取科学Scrapy 与 Selenium:选择最佳网络抓取工具综合指南

探索 Scrapy 和 Selenium 在网络刮擦方面的深入比较。从大规模数据采集到处理动态内容,了解两者的优缺点和独特功能。了解如何根据项目需求和规模选择最佳框架。

WebscrapingAPI
作者头像
WebscrapingAPI
14 分钟阅读
缩图
使用案例在金融领域利用网络抓取另类数据:投资者综合指南

探索网络搜索在金融领域的变革力量。从产品数据到情感分析,本指南深入介绍了可用于投资决策的各类网络数据。

米赫内亚-奥克塔维安-马诺拉什
作者头像
米赫内亚-奥克塔维安-马诺拉什
13 分钟阅读