1.1.3.2 REST服务组成元素
SuperMap iServer的REST服务内部工作主要分为验证、解析HTTP、请求处理以及结果编排返回几个过程,这些过程分别由REST服务内部的认证管理器、资源、参数解析器、资源HTTP处理器、表述生成器完成,客户端向REST服务提交的请求分别经由这些组成部分处理,最终形成处理结果返回给客户端。
资源
资源是REST服务核心的部分,SuperMap iServer的REST服务中每一个资源都有唯一的URI地址,用户访问资源的URI,并通过HTTP的五种动作(GET、PUT、POST、DELETE、HEAD)对资源进行操作,来获取各种GIS功能的操作结果。如对layer资源执行put操作表示创建或修改一个图层。
资源作为服务的核心元素,主要负责对HTTP请求内容进行处理。具体工作内容如下:
- 对参数对象的内容进行判断,对于非法参数直接返回异常的响应码。
- 通过SuperMap iServer服务内核-GIS组件处理请求内容。
- 返回处理结果,包括当前地图状态参数等。
认证器
REST服务是基于网络的,任何客户端通过URI都可以访问REST服务的各种类型的资源,甚至有些资源支持客户端对GIS数据进行编辑操作,因此必须在REST服务器端设置安全机制,用于保护GIS数据、保证REST服务不被恶意破坏。
SuperMap iServer REST服务在安全机制环节专门设置了认证器,认证器是客户端请求到达 REST 服务后首先执行的程序,认证器主要作用是对客户端的身份进行合法性验证,只有通过身份验证的客户端请求才能够与REST服务进行交互,对于非法身份的客户端将其提交的请求驳回,认证器能够有效保证REST服务的安全。
参数解析器
参数解析器是用来解析包含在资源请求中的地图参数,将参数反序列化,转换为参数对象,以便 REST 服务根据参数对象执行对应的GIS处理。
HTTP处理器
HTTP处理器是REST资源用于处理HTTP请求的入口与出口。客户端的请求经过认证器的校验后被分配给相应的资源,此时HTTP处理器获取HTTP请求,对HTTP请求进行判读与处理,最后将最终资源表述返回给客户端。该处理器主要为SuperMap iServer的地图资源、数据资源、空间分析资源以及三维资源提供HTTP请求的处理工作。它主要负责如下工作内容:
- 取得客户端HTTP请求。
- 判读HTTP请求的资源是否存在。如果HTTP请求的资源不存在,将资源不存在的响应码返回给客户端。
- 判读HTTP请求的动作REST资源是否支持。在SuperMap iServer中每个资源都有其能够处理的动作,如果HTTP请求的动作资源无法处理,HTTP处理器会给客户端返回无法处理动作的响应码。
- 判断HTTP请求返回的表述类型REST资源是否支持。通常REST资源支持多种表述格式,包括json、xml、html、rjson、png、bmp、gif、jpg等。如果HTTP请求返回的表述类型资源无法支持,那么HTTP处理器会给客户端返回不支持表述类型的响应码。
- 调用参数解析器解析HTTP请求的参数,转换为资源需要的参数对象。
- 向资源提交参数对象并获取资源处理的结果。
- 调用表述生成器,将处理结果生成所需的表述格式。
- 将表述返回客户端。
表述生成器
表述生成器是将资源的处理结果生成指定类型的表述的一类程序。
在REST服务模式中,资源将客户端请求的响应结果以表述的形式返回给客户端。客户端执行GET请求,将会获得对资源的表述;客户端执行PUT、POST、DELETE请求,将获得操作结果的表述。目前SuperMap iServer的资源支持的表述有多种格式,如html、xml、json、rjson、png、bmp、gif 、jpg或jpeg等,其中png、bmp、gif、jpg或jpeg是图片资源特有的表述格式。