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的请求方法。

看看:

 

 

最后总结:核心思路就是把易变的,频繁使用的单独拿出来,封装成一个方法,供别人调用。

 

posted @ 2021-08-23 20:47  知识在于点滴的积累  阅读(778)  评论(1编辑  收藏  举报