OGC API Features 以 Web 资源开放要素
从入口、集合、要素和一致性声明理解 OGC API Features 的资源模型、查询能力和扩展边界。
OGC API Features 以 Web 资源开放要素
OGC API Features 为通过 Web 访问地理要素规定了标准化资源和请求行为。客户端可以从服务入口发现能力,浏览可用集合,按范围或属性条件请求要素,并通过链接继续导航。它采用常见 HTTP 与 Web 表达方式,不要求客户端先理解传统 GIS 服务的操作名称。
Part 1 Core 建立基本读取路径
该标准由多个部分组成,每一部分解决不同能力。Part 1 Core 规定所有符合核心要求的服务都应支持的基本资源和读取访问,重点是发现服务、列出集合以及取得集合中的要素。不能因为实现了核心读取,就宣称同时支持复杂过滤、任意坐标参考或写入。
服务入口提供到其他资源的链接;API 定义描述可用操作;一致性声明列出实现遵循的标准类;集合列表与单个集合资源描述可访问数据。客户端通过这些资源逐步发现,而不必硬编码服务内部路径之外的假设。
链接关系和媒体类型是导航的一部分。同一资源可以有 HTML 供人浏览,也可以有 GeoJSON 等机器可读表示。客户端应依据链接和 Content-Type 选择表示,不能从文件扩展名猜测。
集合是访问要素的业务边界
集合表示一组可查询的要素,例如道路、地块或监测站。集合描述可包含标题、空间范围、时间范围和坐标参考等信息,帮助客户端判断数据是否适合当前任务。
集合不是数据库表的强制映射。服务可以组合、筛选或转换内部数据,只要对外资源语义稳定。把内部表名直接暴露为长期 API 会让数据库重构变成外部破坏性变更。
每个集合中的 items 资源返回要素列表,单个要素通常由稳定标识访问。标识应在集合语境中可持续使用;若数据重建后标识全部变化,外部链接和增量同步会失效。
基本参数限制返回范围
核心能力包括用边界框筛选空间范围、用时间参数筛选适用时间,并用数量限制控制单次返回。具体参数能否组合、坐标顺序和时间语义需要依据标准部分与集合描述解释。
边界框是矩形筛选,不等同于任意多边形查询。对象的包围或相交行为要按标准规定理解,不能把返回结果误认为完全落在框内。跨反经线和不同坐标参考的范围需要特别测试。
limit 控制一页数量,不保证一次返回集合全部内容。响应中的链接指向下一页时,客户端应沿链接遍历,而不是自己猜测偏移规则。数据在分页期间发生变化时,重复或遗漏风险取决于服务排序与一致性设计。
GeoJSON 是常用交换表示
Part 1 Core 的地理要素响应常使用 GeoJSON。GeoJSON 规定 Feature、FeatureCollection、几何类型和 WGS 84 经度纬度顺序。服务若输出 GeoJSON,需要同时遵守其结构和坐标约束。
属性模式仍由数据提供方定义。相同名称的字段在不同集合中可能具有不同单位和空值语义,因此 API 文档和后续标准部分的 schema 能力很重要。客户端不能仅凭 JSON 类型推断完整业务含义。
大量复杂几何会使 GeoJSON 响应很大。分页、范围过滤、压缩和其他标准表示可以控制传输,但服务应保持不同表示的要素身份和语义一致。
附加能力属于不同标准部分
Part 2 扩展按引用使用其他坐标参考系的能力,Part 3 提供更丰富的过滤。写入、替换和删除属于进一步扩展。实现和客户端都应通过一致性声明确认支持哪些部分及版本。
只是在查询字符串中加入自定义 filter 或 crs 参数,不代表符合相应标准部分。参数语法、错误响应、坐标处理和一致性测试共同构成互操作能力。
扩展可以增加业务筛选和专用表示,但不应改变核心资源已有语义。私有扩展要有命名和文档边界,使不了解扩展的通用客户端仍能使用标准核心。
HTTP 行为也是接口合同的一部分
状态码、内容协商、缓存验证和链接都属于 Web API 行为。不存在的集合、非法参数和无法接受的媒体类型应返回可区分的错误,而不是统一成功并给空结果。
公开静态要素可以使用 HTTP 缓存减少重复传输,频繁变化数据则可用实体标签和条件请求验证。缓存策略必须与更新频率和授权一致,不能让共享缓存泄露受限集合。
跨域访问、认证和限流不由要素模型自动解决。服务可采用现有 Web 安全机制,但要在 API 描述中说明,并确保认证失败与数据不存在等情况不会泄露敏感范围。
互操作需要一致性测试和样例验证
声明符合标准前,应使用适用的一致性测试,并对真实数据检查入口、链接、分页、边界框、时间、要素标识和媒体类型。通过一个手写请求不能覆盖资源之间的合同。
客户端也要容忍合法差异,例如额外属性、不同分页大小和多种可选表示。只针对某个服务样例解析固定字段顺序,会失去采用标准的意义。
运营监控应区分无结果、参数错误、授权拒绝和服务故障。大范围无过滤请求可能形成高成本查询,需要通过最大页大小、查询预算和超时保护,但限制应以标准化错误和文档表达。
OGC API Features 的价值不是把空间数据库原样暴露到互联网,而是用可发现、可链接、可协商的 Web 资源建立要素访问合同。明确支持的标准部分和数据语义,才能让不同客户端真正互操作。
资料依据
- Open Geospatial Consortium:OGC API - Features,https://www.ogc.org/standards/ogcapi-features/
- IETF:RFC 7946, The GeoJSON Format,https://www.rfc-editor.org/rfc/rfc7946.html