iServer REST API 发布服务三步曲

发布时间:2023年12月27日

前言

iServer管理页面可方便的进行的服务,但在实际项目中,可能会在后台或者其他系统中,无感知的去构建对应的服务,本篇文章将通过三步讲解教大家如何使用iServer REST API构建服务。

1.iServer服务体系

使用REST API构建服务前,我们先来认识下iServer的服务体系
在 SuperMap iServer 中一个服务实例由服务接口服务组件服务提供者三个部分组成,

  • 服务提供者( Provider): 封装并统一了对功能的不同实现,屏蔽了不同服务来源的区别,对于不同的服务数据来源有不同的服务提供者;
  • 服务组件(Component):是对不同服务提供者的功能进行组合和封装,封装成粒度较粗的模块
  • 服务接口(Interface): 将其按照不同的服务规范发布成web服务,比如 REST 服务、WMS 服务等。


更具体详细的内容介绍,大家可参阅iServer服务体系

2.具体实现步骤

2.1 创建Token

iServer发布需要管理员权限,因此第一步我们需要使用有管理员角色的用户生产令牌Token

  • 请求url: http://ip:port/iserver/services/security/tokens.rjson
  • 请求方式(Type):Post
  • 请求体(Body)参数说明:

构建Token参数说明

其中需要注意**‘clientType’’expiration’**这两个参数需要根据实际的应用进行对应的设置

  • Postman响应示例

构建Token

2.2 构建服务提供者Provider

2.2.1 浏览器开发者工具监听网络,获取具体参数

在此之前,我们可以点击查看iServer 服务各层次模块页面,能够从中了解到iSever服务各个组成模块具体有哪些类型。
那这么多的服务,我们构建时,如何知道需要配置哪些参数捏?
这里告诉大家一个简单的方式,可通过在iServer页面发布一次你所需要的服务,再点击发布前,F12打开浏览器的开发者工具,点击网络选项页,如图所示:
image.png

不过这里有个例外,就是当你发布的数据来源时工作空间时,监听网络,我们发现是用“http://localhost:8090/iserver/manager/workspaces.rjson”这个请求,当我们发布工作空间时候,就可以调用该请求即可,具体请求参数可参考workspaces发布,这里就不过多阐述了。

2.2.2 具体请求参数说明

这里我们以发布三维切片缓存为例进行说明,首先我们通过监听iServer发布的网络请求,开发者工具可以看到具体发送的请求,如图:
image.png

这里我们主要关注“providers.json"以及”components.json“的这两个post请求以及该请求的负载部分(请求体)
如图:

image.png

因此可总结如下

  • 请求url: http://localhost:8090/iserver/manager/providers.json?token=**** //token为第一步创建的令牌
  • 请求方式(Type):Post
  • 请求体(Body)参数说明:
参数描述示例
name服务提供者名称 不可重复local3DCache-BuildingCBD
type服务提供者类型com.supermap.services.providers.LocalRealspaceProvider
confg服务提供者所对应的配置参数,可监听网络,获取该参数,根据参数名称与iServer页面进行一一对应,就比较好理解了{ configFile:“/Building@CBD/Building@CBD.scp” //三维切片配置文件路径 }

2.3 构建服务组件Component

在Provider创建成功后,我们就来到了第三步构建服务组件,从上面我们已经捕获了components的请求,这里我们就直接根据截图总结下:

image.png

  • 请求url: http://localhost:8090/iserver/manager/components.json?token=**** //token为第一步创建的令牌
  • 请求方式(Type):Post
  • 请求体(Body)参数说明:
参数描述示例
name服务组件名称,可根据服务类型进行命名便于区分,如地图服务为”map-***“3D-local3DCache-BuildingCBD
interfaceNames服务接口名称 ,多个服务类型接口以逗号隔开WMS111,WMS130,WMTS100
type服务组件类型com.supermap.services.components.impl.RealspaceImpl
providersproviders请求所设置的namelocal3DCache-BuildingCBD
confg服务组件配置参数{}无配置时,传入空对象

#小结
至此,我们通过以上三步也就完成了iServer服务的发布,需要发布什么类型的服务,可间接通过iServer页面以及帮助文档列出的类型进行对应参数的设置。

文章来源:https://blog.csdn.net/supermapsupport/article/details/135236520
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。