iServer管理页面可方便的进行的服务,但在实际项目中,可能会在后台或者其他系统中,无感知的去构建对应的服务,本篇文章将通过三步讲解教大家如何使用iServer REST API构建服务。
使用REST API构建服务前,我们先来认识下iServer的服务体系
在 SuperMap iServer 中一个服务实例由服务接口、服务组件和服务提供者三个部分组成,
更具体详细的内容介绍,大家可参阅iServer服务体系
iServer发布需要管理员权限,因此第一步我们需要使用有管理员角色的用户生产令牌Token
其中需要注意**‘clientType’和’expiration’**这两个参数需要根据实际的应用进行对应的设置
在此之前,我们可以点击查看iServer 服务各层次模块页面,能够从中了解到iSever服务各个组成模块具体有哪些类型。
那这么多的服务,我们构建时,如何知道需要配置哪些参数捏?
这里告诉大家一个简单的方式,可通过在iServer页面发布一次你所需要的服务,再点击发布前,F12打开浏览器的开发者工具,点击网络选项页,如图所示:
不过这里有个例外,就是当你发布的数据来源时工作空间时,监听网络,我们发现是用“http://localhost:8090/iserver/manager/workspaces.rjson”这个请求,当我们发布工作空间时候,就可以调用该请求即可,具体请求参数可参考workspaces发布,这里就不过多阐述了。
这里我们以发布三维切片缓存为例进行说明,首先我们通过监听iServer发布的网络请求,开发者工具可以看到具体发送的请求,如图:
这里我们主要关注“providers.json"以及”components.json“的这两个post请求以及该请求的负载部分(请求体)
如图:
因此可总结如下
参数 | 描述 | 示例 |
---|---|---|
name | 服务提供者名称 不可重复 | local3DCache-BuildingCBD |
type | 服务提供者类型 | com.supermap.services.providers.LocalRealspaceProvider |
confg | 服务提供者所对应的配置参数,可监听网络,获取该参数,根据参数名称与iServer页面进行一一对应,就比较好理解了 | { configFile:“/Building@CBD/Building@CBD.scp” //三维切片配置文件路径 } |
在Provider创建成功后,我们就来到了第三步构建服务组件,从上面我们已经捕获了components的请求,这里我们就直接根据截图总结下:
参数 | 描述 | 示例 |
---|---|---|
name | 服务组件名称,可根据服务类型进行命名便于区分,如地图服务为”map-***“ | 3D-local3DCache-BuildingCBD |
interfaceNames | 服务接口名称 ,多个服务类型接口以逗号隔开 | WMS111,WMS130,WMTS100 |
type | 服务组件类型 | com.supermap.services.components.impl.RealspaceImpl |
providers | providers请求所设置的name | local3DCache-BuildingCBD |
confg | 服务组件配置参数 | {}无配置时,传入空对象 |
#小结
至此,我们通过以上三步也就完成了iServer服务的发布,需要发布什么类型的服务,可间接通过iServer页面以及帮助文档列出的类型进行对应参数的设置。