【发布时间】:2020-08-25 01:04:21
【问题描述】:
API vs Web API vs REST API vs Web 服务 vs SOAP 服务
我在采访中多次遇到这个问题。此外,我发现当有人要求他们解释这些术语中的任何一个时,许多人会感到困惑,他们会开始混淆这些术语。
我浏览了网络上的许多内容,但我从未找到任何一个页面在一个位置很好地解释了所有这些术语。
谁能解释这些术语以及它们之间的相互关系?
【问题讨论】:
标签: rest web web-applications
API vs Web API vs REST API vs Web 服务 vs SOAP 服务
我在采访中多次遇到这个问题。此外,我发现当有人要求他们解释这些术语中的任何一个时,许多人会感到困惑,他们会开始混淆这些术语。
我浏览了网络上的许多内容,但我从未找到任何一个页面在一个位置很好地解释了所有这些术语。
谁能解释这些术语以及它们之间的相互关系?
【问题讨论】:
标签: rest web web-applications
我认为问题在于这些术语可以互换使用,实际上并没有太多严格的定义。
在我看来,API 几乎是您用来连接另一块软件/硬件的任何东西。这可能是命令行、HTTP API、本机移动 API、本机 Web API、与 GPIO、L2C 交互的方法……不同的协议。
大部分编程使用多层不同的 API(抽象),一个方法技术上是一个 API。你明白了吗?
Web API 通常会使用 HTTP(S) 或类似技术来公开其 API。您也可以将“网络”API 视为通过 Internet(例如通过 TCP 或使用 gRPC 等)公开其 API 的任何东西。
REST API 是一种特殊类型的 Web API,定义了设计/开发通过 HTTP(s) 公开的无状态 API 的标准,该标准被大多数现代 API 采用,尽管有一些不是 RESTful,更多的是 RESTish,但我离题了。[1] RESTful API 将具有如下端点:GET /users/1,以便执行 CRUD 操作,并且通常会接受/响应 JSON。
在我看来,Web 服务 == Web API,差别不大,服务(在我看来)可以是一个 API,它也可以是一个不公开 API 并且只公开 API 的服务重复一项任务。
我不打算评论 SOAP,当 SOAP 出现时我还很年轻,但我相信它使用了 XML。
编辑:这是一个非常广泛的话题,老实说会根据年龄、经验和背景引发一些讨论。但这是我对您上面概述的条款的看法。
[1]https://en.wikipedia.org/wiki/Representational_state_transfer
【讨论】: