
应用编程接口,或称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提供了更多的定制体验,支持更多的消息类型,它支持服务器和客户端之间处理二进制数据的复杂互动。
Linux面板环境安装,主要支持LNMP和LAMP、Tomcat、node.js。不过对于大部分站长来说,主要是LNMP和LAMP两个环境的安装。 LNMP和LAMP两个环境的最大区别是,前者采用Nginx作为Web服务器,后者则采用Apache作为Web服务器。(选择哪个作为您的Web服务器,可...
宝塔面板中的网站管理是非常重要的一部分,也是站长经常需要使用到的功能模块。网站管理,主要用于管理和创建WEB站点。如果您是宝塔面板的使用用户,应该对此模块有充分的了解,以便于您更高效地管理网站。 宝塔面板网站管理模块包括:添加新网站、修改默认页、设置默认站点、站点列表、站点的运行与停止、备份站点、...
宝塔面板另外一个特质是,你无需通过Linux命令行来查看服务器各项指标状况,即可以阿里云服务器类似的可视化图表,查看资源使用、负载、CPU占用及内容使用百分比等指标。 默认监控是关闭,有需要的,可以开启,监控数据默认保存30天,可以自行修改,默认监控数据保存在日志,可手动清理该日志。 监控管理,...
宝塔面板设置主要涉及的是宝塔控制后台自身的参数,包括诸如面板的开关、自动更新及SSL、面板端口设置等。虽然这部分不涉及服务器自身的管理,但对宝塔面板的设置也有其重要。 特别是面板端口、安全入口及面板密码等涉及安全的参数设置。 启动和关闭面板 如果你长时间无需使用到宝塔面板,可以考虑...
JavaScript是世界上最流行的编程语言之一。今天,它为数百万个网站提供支持,并吸引了成群的开发人员和设计人员为Web构建功能。如果您是编程新手,那么 JavaScript很容易成为之一。 在最初的20年里,JavaScript主要用于客户端脚本。由于JavaScript只能在<scr...
由于市场上有各种可用的数据库,用户经常会就MongoDB与MySQL进行辩论,以找出更好的选择。 使用MySQL等关系数据库的组织在根据不断变化的需求管理和存储数据时可能会面临一定的困难。同时,新公司想知道选择什么数据库,这样他们就不会在开发过程中遇到问题。 同时,构建金融应用程序的开发人员...