SuperMap iServer REST资源(JAX-RS)扩展机制简介

作者:MR.

    SuperMap iServer 不仅提供了 REST 服务,将大量 GIS 功能以资源的形式发布出来,而且提供了一套扩展机制,使用户能够方便地将自己的应用添加至 SuperMap iServer 服务器上,实现自定义的资源,从而成为 REST 服务的一部分。
    SuperMap iServer 目前有两种方式提供 REST 服务,即基于 Restlet 机制和基于 JAX-RS 机制,进行扩展时,要根据功能模块的实现方式采用不同的扩展方法。
    基于 Restlet 机制的iServer REST资源扩展请参考博客:SuperMap iServer REST资源(Restlet)扩展机制简介 ,本文介绍基于 JAX-RS 机制的iServer REST资源扩展。基于 JAX-RS 机制实现的 iServer REST 资源模块有:空间分析模块,提供的扩展形式如下:

• 新资源的扩展:扩展新的REST服务资源。
• 表述生成器扩展:扩展新的表述格式。
• 参数解析器扩展:扩展新的参数解析器。

###基于JAX-RS 机制的REST资源扩展方式
    SuperMap iServer提供了两个抽象类供扩展新REST资源使用:
    com.supermap.services.rest.resources.JaxrsResourceBase
    com.supermap.services.rest.resources.JaxAlgorithResultSetResource

    前者(JaxrsResourceBase)是后者(JaxAlgorithResultSetResource)的父类,后者在前者的基础上实现了POST请求的处理,使支持POST请求及子资源(请求参数returnContent=false时创建子资源存储结果)。
    扩展时实现上述两个类之一即可,两个类的类参考详见iServer 6R帮助文档(百度盘:链接:http://pan.baidu.com/s/1c2KhPhY 密码:kfsx)。

    以JaxAlgorithResultSetResource为例,扩展的基本方法如下:

/** 
 * @Path 指定自定义资源的 URI,从资源根目录算起,
 * 在 iServer 中,基于 JAX-RS 框架实现的 REST 资源根目录为:
 * http://<server>:<port>/iserver/services/<servicecomponent>/<serviceinterface>
 * 其中 servicecomponent 是 iServer 三层体系结构中的服务组件,
 * serviceinterface 是该服务组件绑定的服务接口(参见:服务的 URI 设置),比如:restjsr
 * restjsr 是默认的 JAX-RS REST 服务接口。
 */
@Path("/spatialanalyst/geometry/myResource")
public class MyBufferResultsResource extends JaxAlgorithResultSetResource<T> {
    // 用于标志存储在对象仓库中对象类型。
    private static final String ALGORITHNAME = "本算法名";
    /**
     * 本算法名称,用于存取算法结果。
     */
    @ Override
    protected String getAlgorithmName() {
        return ALGORITHNAME;
    }
    /**
     * 实现父类的 runArithmetic ,给出客户端发送 HTTP POST 方法时,需要处理的业务逻辑
     * 父类的Post 方法将会调用该方法。
     */
    @ Override
    protected Object runArithmetic(T params) {
    // TODO
    }
}

    其中泛型T代表POST请求体参数表示的对象,runArithmetic方法返回值即返回给客户端的结果。
    扩展完成配置到iServer即可,资源配置请参考 SuperMap iServer REST资源(Restlet)扩展机制简介
    在iServer帮助文档:开始 > iServer 开发与扩展指南 > 扩展 iServer > 现有 REST 资源扩展 > 基于 JAX-RS 机制 可以找到一个扩展的示例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值