近年来,全球政府数字化转型浪潮持续推进,但部分公共数据接口却仍停留在二十年前的技术栈上。近日,一位名为“ElSopa”的开发者在其博客中披露,西班牙地籍总局(Catastro)的官方API至今仍采用2003年的SOAP(简单对象访问协议)标准,不仅技术老旧,而且调用复杂、兼容性差。为此,他基于该API自主构建了一套JSON封装器,并整合了MCP(模型上下文协议)能力,大幅简化了开发者使用西班牙地籍数据的门槛。
老旧SOAP接口:二十年前的“技术遗产”
SOAP协议诞生于1998年,曾是分布式系统间数据交换的主流方案。然而,随着RESTful API、GraphQL以及JSON格式的兴起,SOAP因消息格式冗长、解析效率低、跨语言调用复杂等缺陷,在全球范围内已基本被淘汰。西班牙地籍总署的官方API,正是在2003年前后基于SOAP 1.1标准搭建的。
该API提供了西班牙全国不动产登记信息,包括地籍坐标、建筑面积、用途、业主变更记录等关键数据。对于地产开发商、城市规划部门、律师事务所及房产交易平台而言,这是一座极具价值的“数据金矿”。然而,开发者必须面对SOAP XML的繁杂结构,手动构建命名空间、SOAP Header和Body,并处理WSDL(Web服务描述语言)文件中的各类约束。更糟糕的是,该API缺少现代API应有的错误码自动提示、分页支持和限流机制,调用体验相当糟糕。
“与其抱怨,不如动手”——JSON封装器诞生
面对这一现状,开发者ElSopa没有选择“等待政府更新”,而是利用Python编写了一个轻量级的JSON封装器。该项目在GitHub上开源,代码只有几百行,却成功实现了将SOAP请求转换为RESTful风格JSON接口的核心功能。
具体工作原理如下:封装器后台通过HTTP客户端库向西班牙地籍SOAP端点发送原始SOAP XML请求,再将返回的XML数据解析为Python字典,最后序列化为标准化JSON格式对外输出。ElSopa还增加了缓存机制(基于Redis)来降低官方服务器的重复请求压力,同时内置了请求频率控制,避免触发IP封禁。
“使用这两百行封装器,调用方只需要发送一个简单的GET请求,带上地籍参考号或地址关键词,就能获得结构清晰的JSON对象,根本不用关心底层的SOAP信封和XML命名空间。”ElSopa在博客中写道。
MCP加持:让大模型也能理解地籍数据
除了基础的JSON化转换,开发者还为该项目集成了MCP(Model Context Protocol,模型上下文协议),这是近年来AI领域兴起的一种标准化协议,旨在帮助大语言模型(如GPT-4、Claude等)更高效地接入结构化外部数据。
传统上,如果要让AI模型查询西班牙地籍数据,开发者需要编写大量Prompt模板,并手动处理API返回结果的解析。而通过MCP协议,ElSopa的封装器可以将地籍数据接口描述为一个可调用的“工具函数”,大模型可以通过自然语言直接发送“查询马德里Calle Mayor 12号的地籍信息”这样的指令,封装器自动完成SOAP通信、JSON转换,并将结果以结构化的上下文形式返回给模型。
“这意味着,未来用户可以通过ChatGPT询问‘这块土地的建筑覆盖率限制是多少?’,而不需要知道西班牙地籍局还运行着一台2003年的服务器。”ElSopa调侃道。
意义与反思:公共数据不应被技术壁垒锁死
该项目的发布在技术社区引发了广泛讨论。不少西班牙开发者表示,他们早就对地籍API的古旧访问方式感到无奈。有人评论称:“政府花钱维护这些数据,却又用最不友好的方式把它藏起来,这不是数字公共服务该有的样子。”
事实上,西班牙地籍总局并非孤例。在全球范围内,许多政府机构仍在使用基于SOAP、CORBA甚至COBOL的老旧系统。由于政务系统的“技术债务”沉重,更新接口往往需要数年的采购和审批周期。ElSopa的解决方案虽然不能取代官方升级,但为短期内的数据利用提供了一种低成本的可行路径。
目前,该JSON封装器已被托管至GitHub和npm,支持Node.js和Python环境直接调用。开发者表示,后续还将增加批量查询和地理坐标逆编码功能。对于任何需要快速获取西班牙地籍信息的从业者而言,这套工具或许正是打破20年技术壁垒的那把钥匙。