现代服务通信与架构技术全解析
1. 数据格式选择:JSON、XML 及其他
在服务通信中,标准文本格式为客户端消费资源提供了很大的灵活性,基于 HTTP 的 REST 允许使用多种格式。目前,JSON 是基于 HTTP 的服务中更流行的内容类型。
1.1 JSON 与 XML 的对比
- JSON 优势 :JSON 格式简单,消费更容易,部分支持者还认为其比 XML 更紧凑。
- JSON 劣势 :JSON 标准未定义类似 XML 的链接控制,常需自定义风格来实现。不过,超文本应用语言(HAL)为 JSON(也包括 XML)定义了一些通用的超链接标准,遵循该标准可使用基于 Web 的 HAL 浏览器探索超媒体控件,简化客户端开发。
- XML 优势 :部分工具支持更好,如使用 XPATH 提取有效负载特定部分,或使用 CSS 选择器,这些标准有大量工具支持。而 JSON 的 JSONPATH 支持度不高。
1.2 其他格式
除了 JSON 和 XML,还可通过 HTTP 发送几乎任何内容,甚至二进制数据。越来越多人使用 HTML 替代 XML,HTML 可同时作为用户界面和 API,但需注意人机交互的差异。
2. 警惕过度便利的框架
随着 REST 日益流行,帮助创建 RESTful Web 服务的框架也增多。但部分工具为短期利益牺牲长期利益,可能导致不良行为。例如,一些框架使直接将数据库对象表示反序列化为进程内对