假设您正在开发一个Web应用程序,并且决定将功能与应用程序的表示分离开来,因为它提供了更大的自由度。
您创建一个API,并让其他人也可以在其上实现自己的前端。您在这里所做的只是实现一种SOA方法,即使用Web服务。
Web服务使功能构建块可以通过独立于平台和编程语言的标准Internet协议进行访问。
因此,您需要在后端(Web服务)(用于处理和生成有用的东西)与前端(使用数据)之间建立一种交换机制。(Web,移动或桌面应用程序,或其他Web服务)。这里唯一的限制是前端和后端必须“说”相同的“语言”。
这就是SOAP和REST进入的地方。它们是您选择与Web服务通信的标准方式。
SOAP在内部使用XML来回发送数据。SOAP消息具有严格的结构,因此需要解析响应XML。 是关于可以发出哪些请求,使用哪些参数以及它们将返回什么的规范。它是您API的完整规范。
REST是一个设计概念。
万维网代表了符合REST架构风格的系统的最大实现。
它不像SOAP那样严格。RESTful Web服务使用标准URI和方法来调用Web服务。当您请求URI时,它返回一个对象的 ,然后您可以对其执行操作(例如GET,PUT,POST,DELETE)。您不仅限于选择XML来表示数据,还可以选择任何东西(包括JSON)
Flickr的REST API更进一步,还可以让您返回图像。
和 在功能上是等效的,是常见的选择。还有一些基于RPC的框架,例如基于Protobufs的GRPC和Apache Thrift,可用于API生产者和消费者之间的通信。Web API使用的最常见格式是JSON,因为它易于使用和解析每种语言。