[控场AI]
· 5 分钟阅读· 2,824 字

老旧SOAP接口重生:为西班牙地籍API打造JSON与MCP封装

老旧SOAP接口重生:为西班牙地籍API打造JSON与MCP封装

当2003年的SOAP接口遇上现代开发

对许多开发者而言,遇到一个仍运行在十多年前技术栈上的政府数据接口,几乎是一种「时代错位」的体验。近日,一位开发者在 Hacker News 上分享了自己的项目:他发现西班牙的地籍(Cadastre)数据 API 竟仍是 2003 年设计的 SOAP 接口,于是动手为其构建了一层现代化的 JSON 封装,并额外集成了 MCP(Model Context Protocol)支持。

地籍数据是国家层面用于登记土地、房产及其边界、面积、归属等信息的核心公共数据。这类数据在房地产、城市规划、金融风控乃至 AI 应用中需求广泛。然而,官方接口停留在 SOAP 时代,意味着开发者必须处理繁琐的 XML 封装、WSDL 定义与冗长的命名空间,与当下以 JSON 和 REST 为主流的开发范式格格不入。

为什么SOAP成了现代开发的绊脚石

SOAP与JSON的本质差异

SOAP(Simple Object Access Protocol)诞生于1998年,由微软、IBM等企业联合推动,并于1999年发布1.0版本,2003年正式成为W3C标准——这也正是西班牙地籍 API 所停留的历史节点。SOAP的设计初衷是解决跨平台、跨语言的企业级系统互操作问题,它依赖 WSDL(Web Services Description Language)文件描述服务契约,客户端可通过 WSDL 自动生成调用代码,理论上实现了严格的类型安全和接口版本控制。

然而,随着互联网应用的爆发式增长,SOAP 的冗余性成为致命缺陷——一个简单的查询请求可能包含数百行 XML,其中真正的业务数据仅占极小比例。2000年 Roy Fielding 在其博士论文中提出 REST 架构风格,随后 JSON 逐渐取代 XML 成为数据交换主流格式,两者的结合在2010年前后彻底确立了现代 Web API 的主流范式,SOAP 由此退出历史舞台的中心位置。

对于想快速接入西班牙地籍数据的开发者来说,直接对接 SOAP 接口意味着引入额外的解析库、编写复杂的序列化逻辑,学习成本和维护成本都相当可观。

封装层的核心价值

这位开发者的做法体现了软件工程中经典的「适配器模式」思路。适配器模式(Adapter Pattern)是 GoF《设计模式》一书中定义的23种经典设计模式之一,其核心思想是:当两个已有接口不兼容时,引入一个中间层将一个接口转换为另一个接口,使原本不兼容的组件可以协同工作。在遗留系统集成领域,这种「不动存量、只建增量」的策略被称为「绞杀者模式」(Strangler Fig Pattern)的变体——旧系统继续稳定运行,新封装层独立迭代,风险极度可控。

这层 JSON 封装具体承担了以下关键职责:

  • 将客户端的 REST/JSON 请求翻译为底层 SOAP 调用
  • 解析返回的 XML 并转换为结构化的 JSON
  • 屏蔽命名空间、WSDL 等实现细节,对外提供简洁接口

这样一来,任何使用现代技术栈的应用都能像调用普通 REST API 一样使用西班牙地籍数据,完全无需关心其底层的古老实现。

MCP集成:让AI直接读懂地籍数据

这个项目最值得关注的亮点,是它额外提供了 MCP(Model Context Protocol)支持。MCP 由 Anthropic 于2024年底正式发布并开源,其设计目标是解决大语言模型与外部工具、数据源之间的「最后一公里」连接问题。

MCP 的诞生灵感来自软件工程史上的一个成功先例——LSP(Language Server Protocol)。LSP 通过标准化协议统一了代码编辑器与各语言工具链的交互方式,让 VS Code、Neovim 等任意编辑器都能即插即用地获得代码补全、跳转定义等能力,彻底改变了 IDE 生态。MCP 试图在 AI Agent 领域复制这一成功:它定义了标准化的 Resources(数据资源)、Tools(可调用工具)和 Prompts(提示模板)三类原语,让任何遵循 MCP 规范的 AI 客户端都能以「一次实现、处处可用」的方式接入外部世界。

通过将地籍 API 封装为 MCP 服务,开发者实际上让 Claude 及其他支持 MCP 的 AI 助手能够直接查询西班牙的土地与房产数据。用户可以用自然语言提问,例如「查询某地址所在地块的面积和用途」,AI 便能通过 MCP 调用背后的 JSON 封装,最终触达那个 2003 年的 SOAP 接口,返回结构化答案。

这种「老数据源 + MCP」的组合展示了一条极具想象力的路径:大量沉睡在陈旧接口背后的公共数据,都可以通过封装加 MCP 的方式被重新激活,成为 AI 时代可被智能体调用的知识来源。

公共数据现代化的普遍启示

政府数据接口的历史包袱

西班牙地籍 API 的案例绝非孤例。美国联邦政府的部分核心系统仍运行在 COBOL 语言编写的大型机程序上,这些代码可追溯至1960-70年代;英国 NHS 长期依赖 Windows XP 支撑关键业务;日本政府直至2021年才宣布逐步废除软盘作为官方数据提交介质。造成这一现象的原因是多维的:核心系统的稳定性要求催生「能用就不动」的保守心态;更换系统的迁移成本往往高达数亿乃至数十亿美元;政府采购流程漫长,技术决策周期远落后于技术演进速度;此外,维护遗留系统的专业人才日益稀缺,形成难以打破的路径依赖。

正因如此,更换或重构这些核心系统往往涉及巨大的成本、风险与行政流程,它们常常一「服役」便是十几二十年。对于依赖这些数据的开发者而言,与其等待官方推进现代化改造,不如自己动手搭建桥梁。由社区驱动的封装项目,在等待官方系统升级的漫长周期中,实际上承担了关键的数据基础设施角色。

小而美的开源实践

从 Hacker News 上的讨论热度来看,这是一个典型的「个人痒点驱动」的小型项目——没有宏大的商业野心,却精准解决了一个真实存在的痛点。这类项目的价值在于:

  • 显著降低他人接入特定数据源的门槛
  • 提供可复用的技术模式(SOAP 转 JSON + MCP)
  • 展示如何用现代工具赋能老旧基础设施

对于正在与各种遗留系统打交道的开发者来说,这个项目提供了一个清晰可借鉴的思路模板。

结语

从 2003 年的 SOAP 到如今的 JSON 与 MCP,这个项目浓缩了近二十年 Web 技术的演进轨迹。它提醒我们:技术的价值不仅在于创造全新的东西,也在于为那些依然运行、依然重要的旧系统架起通往未来的桥梁。当越来越多的公共数据通过这样的封装接入 AI 生态,「所有数据皆可对话」的新阶段或许已经近在眼前。

#SOAP转JSON封装#西班牙地籍API#MCP Model Context Protocol#遗留系统现代化#REST API适配器模式#政府数据接口#SOAP与REST对比#公共数据AI集成
分享:

相关推荐