通过iServer REST API使用

发送反馈


iServer 处理自动化服务目前已提供轨迹重建、叠加分析等多个工具。所有功能均提供 REST API,可通过执行REST请求来创建处理自动化任务。系统管理员也可以在iServer 中通过访问 建模器页面来创建处理自动化模型,进而发布处理自动化服务。

下面将介绍如何通过REST API执行处理自动化工具,执行方式有异步执行和同步执行两种,您可以根据您的需求选取适合的执行方式。

注:默认ADMIN角色的用户才可创建处理自动化作业。如果其他角色的用户想要访问并使用该服务,需进行安全配置。

注:为访问受保护的处理自动化服务资源,需要在URI中携带Token,具体请参考:基于Token访问受保护的REST服务资源

通过REST API 异步执行处理自动化工具

异步执行处理自动化工具的请求方法为POST,异步执行的处理自动化工具会在请求发送后实时返回相应的处理自动化任务状态信息。

要查看执行的处理自动化工具提交的处理自动化任务信息和结果,则需要根据处理自动化任务状态信息中的任务ID通过GET请求进行获取。

异步执行处理自动化工具和查看处理自动化任务信息与结果的步骤如下:

  1. 查看处理自动化服务根节点下的处理自动化工具列表,确定应用所需的工具。

  1. 在处理自动化服务列表查看所需工具的描述,确定工具ID、所需传递的参数ID等内容,根据工具的ID和所需传递的参数构建异步执行处理自动化工具的POST请求URI和请求参数,从而请求资源。

在异步执行处理自动化工具的POST请求URI如下:

http://<server>:<port>/iserver/services/geoprocessing/restjsr/gp/v2/<ToolID>/jobs?token=<TokenValue>

根据工具的参数ID以及要设置的参数值,构建POST请求参数如下(如果发布模型时勾选了保留参数,可只设置需要调整的参数,其余的参数使用发布时保留的值):

{

"parameter":{

"ParameterID1":"Value1",

"ParameterID2":"Value2",

"ParameterID3":"Value3",

"ParameterID4":"Value4"

},

"environment ":{

"type":"BDT_Spark_Environment",

"master":"spark://127.0.0.1:7077",

"appName":"geoprocessing",

"settings":["spark.cores.max=4"," spark.driver.host=136.0.8.1","spark.executor.memory=16g"]

}

}

以下为异步执行处理自动化工具的POST请求参数的JSON结构解析:

名称 类型 释义
parameter String 执行处理自动化工具时的参数设置,形式为{"ParameterID1":"Value1","ParameterID2":"Value2",……},其中ParameterID为工具的参数ID,由对应的处理自动化工具描述可以确定,Value为参数的值。必填参数必须填写,选填参数根据需要进行填写或者不填写。
environment String

执行处理自动化工具的环境参数设置,包含以下字段:

  • type:处理自动化工具的环境参数类型,目前只支持对分布式处理自动化工具设置环境参数,即"type":"BDT_Spark_Environment"。
  • master:集群master地址,如:"master":"spark://172.16.16.8:7077"。
  • settings:集群配置的参数设置,为数组格式,支持多个配置参数设置,使用逗号“,”分隔开,如:"settings":["spark.cores.max=8","spark.driver.host=192.168.17.43","spark.executor.memory=32g"]。

当需要使用集群进行处理自动化分析时,需要设置环境参数。如不需要,可不进行设置。

  1. 通过异步执行的POST请求,您在返回的状态信息中可以得到此次执行的处理自动化任务ID,根据这个任务ID和处理自动化工具ID,您可以通过GET请求查看相关的任务信息和结果。

http://<server>:<port>/iserver/services/geoprocessing/restjsr/gp/v2/<ToolID>/jobs/<jobID>.rjson?token=<TokenValue>

以下为请求响应的处理自动化任务信息的RJSON结构解析:

字段 类型

说明

jobID String 处理自动化任务ID。
processID String 处理自动化任务对应的工具ID。
processTitle String 处理自动化任务对应的工具名称。
messages String 该任务执行的具体信息。
state SparkJobState 该任务的状态。包括执行状态、起止时间、耗时等。

 

http://<server>:<port>/iserver/services/geoprocessing/restjsr/gp/v2/<ToolID>/jobs/<jobID>/results(/ParameterID)?token=<TokenValue>

其中,ParameterID为工具的输出结果ID,当工具运行存在多个结果时,可通过指定输出结果ID获取所需的结果;不设置该参数时则返回所有结果。

通过REST API 同步执行处理自动化工具

同步执行处理自动化工具的请求方法为GET,同步执行处理自动化工具会在工具执行完毕后获取包含工具执行结果的响应消息。

同步执行处理自动化工具的步骤如下:

  1. 查看处理自动化服务根节点下的处理自动化工具列表,确定应用所需的工具。

  1. 在处理自动化服务列表查看所需工具的描述,确定工具ID、所需传递的参数ID等内容,根据工具的ID和所需传递的参数构建异步执行处理自动化工具的POST请求URI和请求参数,从而请求资源。

同步执行处理自动化工具的GET请求URI如下:

处理自动化工具已保留参数,使用保留的参数同步执行处理自动化工具:

http://<server>:<port>/iserver/services/geoprocessing/restjsr/gp/v2/<ToolID>/execute?token=<TokenValue>

 

传递参数同步执行处理自动化工具:

http://<server>:<port>/iserver/services/geoprocessing/restjsr/gp/v2/<ToolID>/execute?parameter=json&environment=json&token=<TokenValue>

以下为同步执行处理自动化工具的GET请求URI中参数的JSON结构解析:

名称 类型 释义
parameter JSON 执行处理自动化工具时的参数设置,形式为{"ParameterID1":"Value1","ParameterID2":"Value2",……},其中ParameterID为工具的参数ID,由对应的处理自动化工具描述可以确定,Value为参数的值。必填参数必须填写,选填参数根据需要进行填写或者不填写。
environment JSON

执行处理自动化工具的环境参数设置,包含以下字段:

  • type:处理自动化工具的环境参数类型,目前只支持对分布式处理自动化工具设置环境参数,即"type":"BDT_Spark_Environment"。
  • master:集群master地址,如:"master":"spark://172.16.16.8:7077"。
  • settings:集群配置的参数设置,为数组格式,支持多个配置参数设置,使用逗号“,”分隔开,如:"settings":["spark.cores.max=8","spark.driver.host=192.168.17.43","spark.executor.memory=32g"]。

当需要使用集群进行处理自动化分析时,需要设置环境参数。如不需要,可不进行设置。

注:parameter与environment参数内容格式跟异步执行处理自动化工具参数格式是相同的。

同步执行处理自动化工具的请求URI对格式要求较高,请避免在URI中使用多余的空格和换行,可将URI拷贝至浏览器中进行验证。若参数中的某些特殊字符需要进行编码,可使用编码工具进行处理。

 

相关 REST API 介绍请参考geoprocessing

 

请参考:

处理自动化服务REST API使用入门