尽管SOA和微服务体系结构很流行,但是某些技术和实现细节经常被误解或解释不正确。在本文中,我们将回顾有关Web服务的七个事实,它们可以帮助开发人员更好地理解概念,并在需要时更好地准备面试问题。
RESTful Web服务未正式要求使用HTTP,但是如果使用HTTP方法,则应严格遵循其正式含义,以便客户端无需付出额外的努力即可理解API(例如,不使用POST来更新数据,它应该仅用于创建资源,而并非天生具有幂等性)。
REST API的最常见格式是JSON,但绝不是唯一可以使用的格式。REST模型非常适合物联网。但是,就数据传输而言,JSON的面向字符串的有效负载在物联网环境中的速度和易于解析方面与二进制编码不匹配。在这种情况下,其他格式可能更合适。
HTTP PUT方法是完全替换,而不是部分更新。这类似于覆盖整个文件,而不是更新单个列。
RESTful Web服务使用浏览器Cookies来存储状态
客户端和服务器之间的RESTful通信必须是无状态的。不应使用Cookie,会话变量或任何其他有状态功能。
根据SOAP规范,GET和POST方法均可用于通过HTTP交换SOAP消息。使用HTTP POST方法在HTTP请求的主体中传达SOAP消息时,使用了一种称为SOAP请求-响应消息交换模式的模式。在HTTP GET的情况下,使用一种称为SOAP响应消息交换模式的模式。
REST服务在实施CRUD操作时非常受欢迎,但绝不仅限于此。一个很好的例子是在Atlassian Jira中实现的状态转换。它提供了一个端点,首先根据其状态获取可能的过渡列表,第二步,可以将过渡作为HTTP POST请求执行。
如《企业集成模式》一书中所述,有四个顶级集成替代方案:文件传输,共享数据库,远程过程调用和消息传递。RESTful服务集成样式分类为“远程过程调用”。进行体系结构决策时,必须考虑所有四个选项的优缺点。