通过 REST API 方式添加资源(以注册服务为例) |
除了可在iPortal界面中添加资源,iPortal提供了全功能的 REST API,您可通过调用 REST API的方式添加资源到门户。以下以注册服务为例介绍使用 REST API 添加资源的流程。
第一步:阅读注册服务功能提供的 REST API:services 资源;明确添加资源需要通过 services 资源的 POST 请求来实现。
第二步:通过 REST 方式访问和使用 iPortal 门户中的所有资源时,需要携带验证信息,比如可以在 HTTP 请求头中携带Cookie 信息,或者可以基于 Token 访问受保护的 REST 服务资源。其中 Cookie 信息可以在登录时获取, SuperMap Token 可以通过 token 资源获取。
第三步:在第二步选择一种验证方式,并在您的前端代码中实现该注册服务资源的 POST 请求。
通过 services 资源注册一个 SuperMap REST 服务,不需要提供 iPortal 的用户名和密码,仅需携带令牌 token=9jD451OhUlsDSJkJe9Wb34AkFS5k8I6FMy2UriguJkS2X-qXofeME0gSDTgW6003REFso7YhS3E5TNdzUoQWXg..。
对 services 资源发送 POST 请求:
http://localhost:8190/iportal/web/services.rjson?token=9jD451OhUlsDSJkJe9Wb34AkFS5k8I6FMy2UriguJkS2X-qXofeME0gSDTgW6003REFso7YhS3E5TNdzUoQWXg..
传入 rjson 请求体如下:
{
"type": "SUPERMAP_REST",
"tags": [
"China"
],
"authorizeSetting": [
{
"entityName": "GUEST",
"entityType": "USER",
"permissionType": "READ"
}
],
"metadata": {
"mdContact": {
"rpIndName": "",
"rpOrgName": "",
"rpPosName": "",
"rpCntInfo": {
"cntAddress": {
"delPoint": "",
"city": "",
"adminArea": "",
"postCode": "",
"country": "",
"eMailAdd": ""
},
"voiceNum": "",
"faxNum": ""
}
},
"dataIdInfo": {
"dataIdent": {
"idCitation": {
"resTitle": "map"
},
"idAbs": ""
}
},
"distInfo": {
"onLineSrc": {
"linkage": "http://192.168.112.217:8090/iserver/services/map-china400/rest"
}
}
}
}
其中:
上述 POST 请求发送后,服务端返回注册的服务如下所示:
{
"newResourceID": "115",
"newResourceLocation": "http://localhost:8190/iportal/web/services/115",
"succeed": true
}
即为申请注册的服务的 ID 和服务地址。
若 iPortal 开启了服务审核功能,此时还需要管理员的审核,审核通过后才能注册到 iPortal 中。关于管理员的服务审核资源可以访问 servicesCheckStatus 资源。