python+requests公共模块部分的封装
今天的内容是以前文章中遗漏的,以前只讲了配置文件的封装,配置文件的内容包括,读取yaml文件的方法,requests.request的请求方法,
向yaml文件中添加数据的方法,template 模板中的substitut的方法等,
以前没有讲公共方法,例如:url,headers的封装,公共参数单独放到公共模块中,这样方便维护和修改。
其实也简单,就是新建一个文件夹,例如:取名:common
里面新建一个文件例如:common,
文件中就新建两个方法了,公共的url和headers
如下:
class common():
def base_url(self):
base_url="www.***********"
return base_url (此处的url是环境信息,也可能是分为测试环境,开发环境,预生产环境,定义在此处的目的就是方便后期修改的时候,只需要修改这个地方,不要在yaml文件中,一个url一个url的修改)
headers={}
def head_common(self):
headers[userid]=...."
headers[client]=....."
........
return headers (这个是公共的请求头,实际中可能某个接口的请求头需要更多的参数信息,或者少的信息,我们直接在请求体中补充就可以了。)
补充请求头信息:例如:
def red_color(self):
url=base_url+"/api/v1/record"
method=data[red_color][method]
headers=base_api().headers_common()
headers[userid]='.....1212121'
json=data[red_color][json]
return base_api().send(url=url,method=method,json=json,headers=headers)
这样就可以把公共模块中的base_url和headers带过来使用了,同时yaml文件中也不需要每个接口都写一次headers,
后续如果需要修改url这个环境时候,直接再公共模块中修改就可以了,非常的好维护。
另外补充一个config文件中的一个方法或者类,就是封装response返回结果的,
在api_base文件中,增加如下代码:
其中的msgcode,message,data等数据是根据具体的项目来定义的,这里只是提供一个思路,有点类似与requests.request的请求方法。
看看:
最后总结:核心思路就是把易变的,频繁使用的单独拿出来,封装成一个方法,供别人调用。