【api-object】api接口对象如何自动生成

问题背景:

目前项目完全采用api object的方式,但是每个接口对象都是采用硬编码的方式,类似这样:

class MemberApi(BaseApi):

    @api_call
    def login_api(self, user=BaseApi().account['user'], pwd=BaseApi().account['pwd']):
        """
        登录接口
        :return:
        """
        api = self.conf_data['member_api']['login']
        data = {
            'url': self.host + api,
            'method': 'post',
            'headers': self.headers,
            'json': {
                'mobile_phone': user,
                'pwd': pwd
            }
        }
        response = self.send_http(data)
        return response

换到其他业务线,会比较麻烦,又需要去编写该业务线的api函数对象,还是希望这个框架能更通用一些,能快速搭建脚手架,并且后期会集成到测试平台上。

现在想用一种方式,能让其自动生成api函数对象,而不用人工去编写。
目前想到的思路是,每个api函数对象,其实格式都是固定的,变量只是参数,通过一套标准的yaml模板传入参数,去动态生成api对象。
但是,关键是如何动态生成api对象呢?有什么思路呢?
求各位大佬支支招~

可以试试通过接口文档动态生成api接口对象;

最终是想实现这样,但是目前不知道具体实现技术细节,如何通过一份yaml文件自动去生成api接口对象,需要用到type动态创建类和反射?

参考swagger里的解决方案,直接根据接口的规范,直接生成对应的api object就可以了。swagger就是这么做的。这里面的确需要用到一些技术,比如模板技术、数据驱动技术,还有一定的反射技术。

关闭