如何调用imanager REST API

本文介绍如何调用SuperMap iManager的REST API,重点是云套件服务的发布。首先需要申请token,然后通过指定URL发送HTTP请求发布服务实例。成功后,可以在管理页面查看创建的服务节点和服务实例。

SuperMap iManager和其他的SuperMap产品一样也提供了REST API方便客户进行调用灵活运用到项目中。目前提供了imanager管理的REST API,包括创建和删除GIS站点和数据库站点,云套件中的管理,发布,修改,删除服务等等 REST API

今天的话咱们主要以云套件的REST API做为示例,通过ajax来发送请求

首先,需要申请token,如果没有token是无法访问云套件的服务的

http://{server}:{port}/dashboard/web/api/token进行http请求,{server}为网关的ip,{port}为网关的端口,需要用实际端口替换

获取token需要在请求体中填入的参数为

名称类型含义
userNameString用户名
passwordString用户密码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
function loadXMLDoc()
{
  var xmlhttp;
  if (window.XMLHttpRequest)
  {
    // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
    xmlhttp=new XMLHttpRequest();
  }
  else
  {
    // IE6, IE5 浏览器执行代码
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange=function()
  {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
      document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
  xmlhttp.open("POST","http://39.99.210.65:30476/dashboard/web/api/token",true);
  xmlhttp.setRequestHeader("Content-Type","application/json");
    var myRequestBody = {
  "userName":"user_admin",
  "password":"iserver"
}
  xmlhttp.send(JSON.stringify(myRequestBody));
}
</script>
</head>
<body>

<h2>AJAX</h2>
<button type="button" onclick="loadXMLDoc()">请求数据</button>
<div id="myDiv"></div>
 
</body>
</html>

 

响应

access_token就是我们需要使用到token。有了token后我们就可以对云套件管理进行操作了,先发布个服务试试

发布服务实例是在service下的instance资源下进行操作的

对url http://{server}:{port}/dashboard/web/api/service/instance发起http请求,需要填入请求体参数为

名称类型含义
dataSourceString数据源类型的名称(请参见API->service中的数据源类型名称表)
serviceTypesString[]服务类型的名称(请参见API->service中的服务类型名称表)
nodeTypeString节点类型的名称(请参见API->service中的节点类型名称表)
nodeNamesString[]服务实例所在服务节点的名称,可输入已有节点名称或重新创建
isCreateNodeBoolean是否为新建节点
serviceXmlString自定义服务配置(请参见SuperMap iServer帮助文档《iServer体系结构中各层的配置》)
settingsString配置服务,根据不同数据源以及发布的服务类型配置。

需要注意的是,我们上一步申请到的access_token需要放在请求头中,以Authroization Header为例,应如此设置请求头

content-type: application/json
Authorization: Bearer {access_token}

完整的请求

  xmlhttp.open("POST","http://39.99.210.65:30476/dashboard/web/api/service/instance",true);
  xmlhttp.setRequestHeader("Authorization","Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJPRXpGaExodkpuZ1MzTk5zQXJ3XzMzQlQtTmJDLXc2bnVZN19FWFRaQlFnIn0.eyJleHAiOjE2MDkzOTU4NDcsImlhdCI6MTYwOTM5NDA0NywianRpIjoiNWY2NjkwOGYtNjcxMC00NDYyLTlmMDgtMWQyM2EwYmQ1OWNkIiwiaXNzIjoiaHR0cDovLzM5Ljk5LjIxMC42NTozMDg5OC9hdXRoL3JlYWxtcy9pc3BlY28iLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiY2JhYTI3YTgtZGYwYi00NzM4LThkNDUtY2U5NmM1MzM4ZjRlIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiaXNwZWNvLWFwaSIsInNlc3Npb25fc3RhdGUiOiJiNzFmZWQyMC0wMzY4LTRkNGYtYjdmZC1hMTdjZWM1MmMxNzQiLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbIioiXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbImJ1aWx0aW4iLCJvZmZsaW5lX2FjY2VzcyIsIkFETUlOIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6ImVtYWlsIHByb2ZpbGUiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsInByZWZlcnJlZF91c2VybmFtZSI6InVzZXJfYWRtaW4ifQ.Lu9WEpnq7AmlKOqQFpJj_j0VGfsmxDU2Anmer4dS8V2x4_5We2K6By3cBvitAQiQqUKQhq5VcS-2j6Gr4RKrdvbp2AAdpf-Rfp2qQb9wPzNyztjk5OmeYyFOVkbqvPl-AWQyrJy0mHb5tXByKzaR_P6OTmTXX_RH4smwKHei6yyKWb8rR3TjrHb5i_cRcVLT84Vs7weBU99WrQQAHr_3EOuGN1ohQS3_O3O6kLiIsnsiNfvQ1J50qCJFztcegs10pEeHRSuoW8f7NO0RaCr7FWbmE0Jz_0Z5KIfUafMIZvOU1un1RDhso4BxjebaKpC1anZ52L0fHdpUZWNI_MeWpA");
  var myRequestBody = {
    "dataSource": "workspace",
    "serviceTypes":[
        "map-rest"
    ],
    "nodeType": "gisapplication",
    "nodeNames":[
        "Node1"
    ],
    "isCreateNode": true,
    "serviceXml": "",
    "settings":
    {
        "workspacePath": "/data/Chart/Chart.smwu",
        "mapEditable": ""
    }
}
  xmlhttp.send(JSON.stringify(myRequestBody));

 

响应

查看管理页面

可以看到已经在创建服务节点和服务实例了

所有的REST API都是如此使用的,如果使用imanager管理的REST API,比如说创建GIS站点,那么token的申请应该是使用imanager的账户对应的权限申请对应的token。更多具体的内容可以查看iManager的帮助文档https://help.supermap.com/iManager_K8S/zh/microservices/tokens/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值