定义 SOAP、OData、REST 和 API 之间的差异

已完成

简单对象访问协议 (SOAP) 是基于 XML 的消息传送协议。 它允许不同的(远程)进程进行通信。 SOAP 依赖 HTTP(S)、SMTP 或 FTP 进行消息协商和传输。 SOAP 协议使用起来并不容易。

SOAP 中最常见的消息传送模式类型是远程过程调用 (RPC),其中一个网络节点(客户端)向另一个节点(服务器)发送请求消息,然后服务器会向客户端发送响应消息。 RPC 使用 SOAP 信封,它定义了消息结构以及处理消息的方式。

要使用 SOAP,连接到 Business Central 服务器的客户端必须能够理解 SOAP 消息。 自 Windows Communication Framework (WCF) 版本 3.0 发布以来,.NET Framework 一直支持 SOAP 服务。

SOAP 服务公开了一个 Web Services 描述语言 (WSDL) 文件,该文件描述了如何调用服务、它需要哪些参数以及它返回什么数据结构。 该文件是基于 XML 的文档,需要使用计算机读取,不能直接人工读取。

Business Central 还支持 Open Data Protocol (OData),这也是一种旨在使用和查询 RESTful API 的开放协议。 API 是一组用于在不同软件组件之间进行通信的例程和协议。 API 的使用已有多年的时间,几乎所有软件都有一个 API,以允许其他程序使用该软件的某些功能。 例如,Win32 库是一个众所周知的 Windows API,用于在较新版本的 Windows 上运行较旧的应用程序。

目前,API 最常用于 Web 应用程序。 每个大型 Web 应用程序(例如 Facebook、LinkedIn、Microsoft Graph 等)都可以使用 API 进行连接,以增强 Web 应用程序的体验或使用 Web 应用程序提供的数据。 如果这些 API 遵循 REST 体系结构,则称为 RESTful API。 REST 是一种可在 Internet 层面运行的 Web 服务体系结构,这意味着它们可以处理来自 Web 的众多连接和请求。 这些服务是无状态的,这意味着虽然可以从服务器请求一些数据,并且服务器会回应,但它不会保留有关请求的内部状态或会话。 服务器在回应后会关闭连接。

这些传输只能通过 HTTP(S) 进行,并且 REST 支持 JSON 和 XML。 但是,JSON 是最常与 REST 服务结合使用的格式。

REST 的显著优势在于调用 REST 服务的方式。 您可以使用采用标准 HTTP 动词(例如 GET、POST、PUT 和 DELETE)的 URL 来进行调用。 每种能够发送 HTTP 请求的编程语言都适用于 REST 服务,因此具有比 SOAP 更高的性能和可扩展性。 此外,由于它是 HTTP 请求,浏览器或服务器可以缓存响应。

OData 建立在 REST 服务之上,可用于查询 REST 服务。 例如,通过向 URL 提供额外的查询参数,可以限制或筛选结果集。 借助 OData 可以非常轻松地完成 CRUD 操作。 就像 SOAP 公开了 WSDL 文档一样,OData 公开了 EDMX 文档,其中包含所有已发布的 Web 服务的元数据。

OData 使用不同的格式来表示数据和数据模型。 JSON 格式是标准格式,但 OData 也可使用 Atom 格式。 Atom 也是一种基于 XML 的格式,可用于 Web 源(例如新闻源)。 EDMX 文档是作为 XML 文档创建的,因此 OData 会使用不同文件格式的组合。