通过 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 资源