👽async_api装饰器用法
当接口是异步接口,怎么做判断异步结果?
aomaker
提供了@async_api
来标记异步接口,示例如下:
from aomaker.base.base_api import BaseApi
from aomaker.aomaker import dependence, async_api
from apis.cluster import cluster
from utils import wait_job
class Job(BaseApi):
@async_api(wait_job, 'hpcjob_uuid')
@dependence(cluster.get_cluster_list, 'hpc_cluster_id', cluster_type='hpc')
def submit_hpc_job(self, test_data):
...
return resp
使用步骤:
from aomaker.aomaker import async_api
导入@async_api
装饰器@async_api
装饰器接收两个必传参数:- 第一个参数,自己编写的轮询函数(注意接收的是函数对象,不要加括号直接调用)
- 第二个参数,从目标接口的响应中根据jsonpath表达式提取异步任务id
- 非必填参数,
jsonpath
表达式提取出的值是list
,可以根据自身需求指明需要提取哪个,默认值为0
- 若轮询函数需要接收参数,也可以通过关键字参数传入
当一个接口被打上这个标记,那么会在接口被请求完成后,会开始执行自己编写的轮询函数,来判断该异步接口的异步任务结果是否得到预期结果。