开发者学堂课程【4节课走进 RPA 低代码开发: 服务端 API 介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/290/detail/3421
服务端 API 介绍
内容介绍:
一、服务端 API 是什么
二、服务端 API 的使用场景
三、服务端 API 的分类
四、使用文档参考
一、服务端 API 是什么?
阿里云服务端 API 就是我们提供给第三方使用的接口,这些接口可以操作我们的机器人进行相关的任务执行,查看执行结果,查看相关日志等功能,直接通过代码对接口的调用来实现跟RPA服务相关的功能,更大程度的实现 RPA 的可被集成性。
二、服务端 API 的使用场景
1.第三方系统是怎么跟阿里云 RPA 实现交互的呢?
我们的服务端 API 能够把 RPA 的机器人执行当成一种服务与 HTTP 接口的方式提供给第三方系统,从而实现了第三轮系统与机器人的交互。
在某些需要实现的业务中,数据有时候需要时间相互,比如编写流程中需要某项数据,而该数据需要访问另一个系统处理业务,获取到结果后才能拿到,这种情况在业务中经常出现,而使用服务端API功能,能在不终止业务流程的情况下,系统化实现所有的功能,RPA 机器人之间可以实现数据的交互,在具体业务中,将获取另一个系统上的数据操作,编写成一个应用并发布,然后再主流程中通过API接口去调用b机器人执行这个应用被机器人执行任务,并把结果返回到主流程中,最后使用a机器人行主流程时,就能保证在不中断的情况下实现所有的功能。
2.怎样才能保证访问接口时的安全性呢?
服务端的 API 接口对于每一次的 HTTP 或者 HTTP s 协议请求都会根据访问中的签名信息验证访问者的身份通过对 accesskingID 和 accesskey secret 对称加密验证去实现这俩个参数。
三、服务端 API 的分类
服务端 API 共开放了四十多个接口,包括机器人应用任务以及文件相关的操作,机器人主要包括查询机器人信息更新,机器人认真状态更新机器人调度状态等,应用主要包括获取应用列表,申请应用,审批应用等任务,包括创建计划任务,服务型任务,查看任务状态及结果,以及查询相关日志等文件包括文件上传等。
四、使用文档参考
请求方法 |
GET/POST |
请求host |
公共云:htts//api-rpa.aliyun.com私有云:企业私有化部署的环境 |
请求路径 |
根据请求的接口来定义,参考文档: https://help.aliyun.com/document_detail/175379.html |
公共请求参数 |
参考文档: https://help.aliyun.com/document detail/175390.html |
指定接口参数 |
该参数为不同接口所需的参数 |
返回参数类型 |
JOSN |
返回参数介绍 |
参考文档: https://help.aliyun.com/document_detail/175392.html |
阿里云 RPA 服务端 API 支持基于 URL 发起 HTTP/HTTPS GET/POST 请求,所有的请求参数都包含在 URL 中。
服务端 API 使用参数的请求方法分为 get 或 post 两种公共云的请求后的地址统一。进去私有云的后四位企业私有化部署的环境请求路径,是根据请求的接口来定义的,接口分类可参考此文档:
从 API 概览看到接口的分类以及请求的方法,路径以及每个接口的含义。在发送请求时,需要请求参数,请求参数包括公共请求参数和指定接口的参数。
查看公共请求参数:
公共请求参数共八个参数,访问密钥可以通过控制台去获取 signature 是通过一些签名机制生成的,参数生成的方法参考下面这篇签名机制的这篇文档:
名称 |
类型 |
是否必需 |
描述 |
AccessKeyld |
string |
是 |
访问密钥 ID。AccessKey 用于调用 API |
Signature |
string |
是 |
您的签名。取值参阅 签名机制。 |
SignatureMethod |
string |
是 |
签名方式。取值范围:HMAC-SHA1。 |
SignatureVersion |
string |
是 |
签名算法版本。取值范围:1.0。 |
SignatureNonce |
string |
是 |
签名唯一随机数。用于防止网络重放攻击,建议您每一次请求都使用不同的随机数。
|
Timestamp |
strng |
是 |
请求的时间戳。按照ISO8601标准表示,并需要使用 UTC旷间,格式为yyyy-MM-ddTHH:mm:ss+时区 Timestamp String 是 00。示例: 2018-01-01T12:00:00+0800 表示北 京时间2018年01月01日20点00分00秒 |
Version |
string |
是 |
API的版本号,格式为 YYYYMMDD。取值范围: |
Format |
string |
否 |
返回参数的语言类型。取值范围:json 暂时仅支持JSON |
其他参数可以根据它的说明来具体查看它的使用方法。注意:这里的时间窗要按照指定的格式来生成指定的接口参数,需要去查看具体的每个接口文档。在这个服务端 API 的这个目录下,有机器人客户端应用任务文件的目录分类,在每个目录下可以看到具体的接口文档:
查看机器人客户端 curry views 这个接口文档,从这篇文档可以看到请求调用地址,调用方式该接口独有的请求参数以及返回的参数说明请求返回的实例。
服务端 API 使用的事例,使用接口创建一个服务型任务,去执行一个应用,该应用是提前准备好的接口测试,主要实现了使用IE打开一个百度界面,输入关键字电脑后并点击接口调用。该应用的前提:第一,需要将应用发布至企业应用市场,点击发布按钮填写好相关的参数后,发布地址选择云端发布类型选择应用点击确定后,可以在控制台查看该应用。
发布后的应用需要申请并使其通审批通过后才可以使用,有两种方式可以申请,一种是通过接口,服务端有请应用以及审批应用的接口,调用该接口后可以实现应用审批的工作。
在应用目录下 apply APP 以及 approve 就是这两个接口的文档:
approve
更新时间:2020-07-21 16:45:45
调用地址:https://api-rpa.aliyun.com/rpa/openapi/app/approv
调用方式:POST
返回类型:JSON
接口说明:通过申请
名称 |
类型 |
示例值 |
描述 |
Uuid |
String |
8d1ee3c2-d406-4d80-b7a2-e53542be2354 |
申请记录唯一标识符 |
Appname |
String |
TestAPP1 |
应用名称 |
Appld |
String |
fb6a99a1-d8bd-46ee- 8bed-2ed9cb5a0c0d |
应用唯一标识符 |
Applicant |
String |
93bf42a1-6e65-4912- 98b2-4d5ec0e6260a |
申请人UUID |
Apply time |
Date |
1589527241519 |
申请时间 |
Reviewer |
String |
|
评审人 |
Review time |
Date |
|
评审时间 |
Progress |
String |
Auditing |
应用申请状态 |
另外一种是直接在控制台审批应用,在控制台应用可以查看到刚刚发布的rpa接口测试应用,点击操作分配选择分配成员,就可以在我的应用处看到刚刚申请的应用。
准备工作做好后,查看创建服务型任务的接口文档,在任务整个文档中可以看到调用的地址以及调用方式。除了公共参数,该接口中还需要传入独有的请求参数,APP ID 是必传的参数,其他参数为选填。
名称 |
类型 |
是否必选 |
示例值 |
描述 |
Appld |
String |
否 |
fb6a99a1-d8bd46ee-8bed-2ed9cb5a0c0d |
应用唯一标识符 |
Appparams |
String |
否 |
|
JSON字符串 |
Clientld |
String |
否 |
5e77da4eb87bcfb62a8b9527626a47f4 |
机器人唯一标识符 |
Calibackurl |
String |
否 |
|
回调url |
此处添加 client ID 这个参数机器人的 ID,使用该台电脑的机器人可以保证任务是在该台电脑上执行的,能直观的看到任务的执行。ID 这个参数既可以使用接口去获得,也可以直接在机器人中查看这个 ID 接口需要使用我们 Query clerk views 这个接口
添加器人名称这个参数,就能精准的获取到机器人的 ID,以 postman 为例,可以来查看到该接口的调用结果获取机器人信息,可以看到一些公共请求参数以及独有的这个机器人的名称为测试机器人。名称可以在200 rta 机器人客户端首选项,可以查看他的名字,也可以在这里修改他的名字。
可以查看它的返回结果,返回结果中包含各种信息,uuid 参数即为机器人的 uuID,除了使用接口调用获取之外,同时我们也可以直接在机器人客户端中查看该 uuID。
接口调用以及直接查看的两个 uuID 是一致的。
创建服务型任务除了需要客户端uuID参数之外,还需要一个必填的应用ID即APP ID。通过调用接口可以获取到这个参数,在应用Query apps这个接口中可以获取到这个参数:
在请求中添加 APP name,这个参数可以精准的查到想要执行的应用,返回结果中 uuID 即为 APP ID。可以在 post man 中查看这个请求参数,包括公共请求参数以及独有的 APP name 这个参数。
这个应用实行的 name 是 rpa 接口测试请求到返回结果。包含各种信息,其中 uuID 极为获取到 ID 以及 APP ID 之后,使用 postman 调用服务型任务的接口,去执行这个任务。
获取到的这些签名信息时效只有十几分钟,所以需要重新生成。拿到新的签名信息了,要将之前公共求参数中的发生变化的参数替换一下。
<class 'dict'>:('AccessKevId':f8cd79977657e3d1'.Format':lison'.SianatureMethod!:·HMAC-SHA1'.ISianatureNonce':'cwagvmzpfdbqklxsrjytuieohn','SignatureVersion':'1.0'. 'Timestamp':'2020-08-12T09:44:212','Version':'20200430','appId':'88075d59-2a0e-4ec0-9a6d-c7adf0b24009','clientId':'081054D2998C14DCA43D734F4BEB86BE 'Signature':b'jCvz9iUu4V7iSwNav50enmn+/RI='
在计划任务,服务型任务里可以查看刚才执行的任务。查看批次信息,查看运行结果,在此处可以看到代码里面写的运行日志。
执行这些任务的时候需要注意2点,一方面是需要机器人是空闲状态,另一方面是需要他的认证状态是已认证,具体的操作方法,参考官网的阿里云 rpa 文档操作。