SuperMap iServer 不仅提供了 REST 服务,将大量 GIS 功能以资源的形式发布出来,而且提供了一套扩展机制,使用户能够方便地将自己的应用添加至 SuperMap iServer 服务器上,实现自定义的资源,从而成为 REST 服务的一部分。
SuperMap iServer 目前有两种方式提供 REST 服务,即基于 Restlet 机制和基于 JAX-RS 机制,进行扩展时,要根据功能模块的实现方式采用不同的扩展方法。
基于 Restlet 机制实现 REST 资源的模块有:地图模块、数据模块、交通网络分析模块、三维模块。提供的扩展形式如下:
-
扩展资源。使用 REST SDK,通过继承 SDK 中提供的抽象资源类,进行新资源的扩展。
-
扩展表述生成器。使 SuperMap iServer 服务器能将已有资源发布成新的表述格式。
-
扩展参数解析器。使 SuperMap iServer 服务器能够识别新的参数传递格式。
-
扩展 HTTP 请求处理器。可以定制 HTTP 请求在 SuperMap iServer 服务器中的处理过程。
-
扩展安全机制。使用户可以将自定义的安全机制配置到 SuperMap iServer 服务器上。
客户端访问 SuperMap iServer REST 服务,一个 HTTP 请求在 SuperMap iServer 服务器端的流程如下图所示,其中,绿色的部分为扩展点:
其中,通过 REST SDK 扩展的资源、通过领域组件发布而成的资源和 SuperMap iServer 服务器上原有的资源,都可以进行表述生成器、参数解析器、HTTP 请求处理器的扩展。
本节将按照以下顺序来讲述怎样对基于 Restlet 机制的 REST 服务进行扩展: