aomaker icon indicating copy to clipboard operation
aomaker copied to clipboard

dependence 装饰器扩展

Open grassroadsZ opened this issue 1 year ago • 3 comments

  1. 目前 dependence 装饰器的 var_name 是一个Text字符串, 存在后置接口需要前置接口响应的90%的参数, 如果是这种情况的话,需要打n个 dependence 注解,能否支持传多个参数

grassroadsZ avatar May 28 '24 03:05 grassroadsZ

@grassroadsZ 是不是理解错了,这里存的是整个响应,var_name是这整个响应的key。 比如,一个接口依赖是: @dependence(common.user, "user_info") 这里第一个参数表示依赖的接口是common模块下的user接口,这个接口的整个响应以key-value的形式存到cache表里,其中"user_info"是这个key。 当要使用这个响应的数据时,self.cache.get_by_jsonpath("user_info","$..xxx"),根据你的需要,需要什么参数提取什么参数,因为整个响应内容都存了。

ae86sen avatar May 28 '24 03:05 ae86sen

使用步骤:

from aomaker.aomaker import dependence导入装饰器 导入依赖接口对象 在模板接口上使用@dependence 装饰器,该装饰器接收2个必传参数: 第一个参数,依赖接口对象 第二个参数,需要从依赖接口响应中提取的参数名 如果依赖接口本身需要从外部传入参数,那么可以以关键字参数的形式传入 在body中,当需要引用依赖接口的参数时,直接调用self.cache.get_by_jsonpath方法,该方法接收2个必传参数: 第一个参数,依赖参数的参数名,即cache表中的key名 第二个参数,从依赖接口的响应中,提取出依赖参数值的jsonpath表达式 非必填,jsonpath表达式提取出的值是list,可以根据自身需求指明需要提取哪个,默认值为0

那应该是我理解错了, 文档上写的是这样的 : 在模板接口上使用@dependence 装饰器,该装饰器接收2个必传参数: 第一个参数,依赖接口对象 第二个参数,需要从依赖接口响应中提取的参数名

grassroadsZ avatar May 28 '24 05:05 grassroadsZ

@grassroadsZ 后续我更新下文档,避免歧义

ae86sen avatar Jun 02 '24 13:06 ae86sen