
应用编程接口,或称API,是计算机程序或服务之间相互通信的一种方式。这种通信通常发生在一个上,由客户端消费的程序暴露出来。
本文将比较两种流行的构建API的 *** :表征性状态转移(REst)API和Web API。
与流行的看法相反,REST API不是一个协议。它是一种架构,而且是开发API的更流行的架构。正如在《》一文提及,REST是无状态的,所以在请求之间没有数据或状态被存储。
REST还为构建通过HTTP通信的应用程序定义了多种架构约束:
REST比其他API协议或架构更容易使用。它还提供了许多其他的好处,使它成为许多开发者构建API的首选:
GET、POST、PATCH、DELETE或PUT中的任何一种 *** 进行数据检索,并根据服务的实现提出请求。这些 *** 返回常见的HTTP成功和失败代码。其他 *** 包括OPTIONS、HEAD和TRACE。这些 *** 在服务之间是不一致的,因为一些提供者可能只根据他们的需要实现一个 *** 。Web API只是一个通过HTTP访问服务器资源的接口。这个术语指的是概念,而不是任何特定的技术–Web API可以用各种技术建立,如和ASP.net。Web API使用一个开源的接口,并利用许多客户端实体,如浏览器、智能手机、平板电脑和笔记本电脑。
*** 应用程序接口实现了协议规范的概念,如缓存、版本管理和不同的内容格式。一个Web API可能是也可能不是REST API,这取决于它的构建方式。Web API通常用于分布式系统,在不同的设备上提供服务,如智能手机和笔记本电脑,并且仅限于 *** 应用的客户端。
下面是两个广泛使用的Web API的例子:
Web API是作为系统对系统的互动进行的。以下是这样一个API内的数据可能的流动情况:
*** 应用程序接口的有利特征包括:
现在,让我们更详细地比较这两种API。
Web和REST API在架构上有一些相似之处,让我们来看看。
虽然Web APIs和REST APIs有类似的架构模式,但它们也有一些关键的区别。
Web API足够灵活,可以利用任何通信方式,而REST API主要用于 *** ON、XML和纯文本。这些选择意味着REST API在文本数据传输方面表现良好,例如针对数据库的创建、读取、更新和删除(CRUD)操作,但在涉及二进制数据时,限制性更强。
对于需要二进制数据的服务,如音乐或视频流服务,Web APIs提供了更好的体验,因为它们支持更多的消息格式。
虽然这些API格式在很多情况下是可以互换的,但有几个场景是一个比一个好的:
REST API对于需要访问不按简单层次排列的资源的复杂请求难以管理。这是因为它的URI引用了资源,这意味着管理这种情况需要操作URI路径、查询参数和请求主体,这违背了REST的目的。在这种情况下,Web API是首选,因为它允许定制,并对URI响应和请求头有广泛的支持。
由于支持异步调用等技术–使用REST架构不容易实现–Web API是满足复杂API需求的途径。
Web和REST API是用来构建提供资源并通过HTTP进行通信的应用程序。REST描述了统一接口上的架构约束,而Web API一般是一个概念,可以是RESTful的,这取决于实现。
Web和REST API都是轻量级的格式,在很多情况下都可以互换。然而,与REST APIs相比,Web APIs提供了更多的定制体验,支持更多的消息类型,它支持服务器和客户端之间处理二进制数据的复杂互动。
扫描二维码推送至手机访问。
版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。
宝塔面板中的网站管理是非常重要的一部分,也是站长经常需要使用到的功能模块。网站管理,主要用于管理和创建WEB站点。如果您是宝塔面板的使用用户,应该对此模块有充分的了解,以便于您更高效地管理网站。 宝塔面板网站管理模块包括:添加新网站、修改默认页、设置默认站点、站点列表、站点的运行与停止、备份站点、...
使用宝塔面板,您可以快速地创建一个FTP管理账户,对网站文件进行管理。但有必要提醒大家的是,使用FTP远不如使用SFTP安全,你可以查看文章“”进一步了解两者之间的差异。 此外,宝塔面板的文件管理模块其实已经能够满足站长的大部分文件管理需求。当然,如果你非得要使用FTP管理服务器文件,可以参照以下...
宝塔的数据库管理,是基于phpmyadmin管理和新建数据库。其最大的便利性就是类似,通过面板可以快速访问进行管理操作,无需单独访问phpmyadmin的主页。 此外,在宝塔面板进行数据库管理,你也对数据库名、用户名及密码等信息一目了然,及可以对数据库执行快速备份或者导入。 添加数据...
经过几个小时的努力工作后,您是否感到眼睛疲劳或难以阅读代码?许多程序员在开始头疼之前从没想过要切换字体。 如果您经常发现在尝试扫描一千行代码时眼睛模糊不清,或者在停止编码数小时后头疼,那么可能是时候尝试一种新字体了。即使您没有遇到这些症状,设计良好的字体通常也比默认系统字体具有更好的可读性。...
Node.js和PHP是Web开发工作中常用的两种基本Web技术。两者都为服务器端开发做出了贡献,Node.js甚至同时服务于客户端和服务器端开发。 PHP已经为开发人员服务了近3年,现在它为78%的网络提供支持。相比之下,Node.js相对较新,但扩展速度非常快,由于其全栈开发能力而成为流行...
无服务器计算是一种基于云的执行模型,可以将应用程序作为服务托管,而无需维护服务器。 服务提供商维护服务器上的资源分配,并根据实际使用情况向用户收费。焦点转移到一个人正在创建的核心应用程序上,基础设施完全由服务提供商处理。无服务器计算也称为功能即服务 (FaaS)。 换句话说,Serverle...