实现原理
- 需要二次封装requests,对请求进行定制化。
- 将请求的结构体的url从一个写死的ip地址改为一个(任意的)域名。
- 使用一个env 配置文件,存放各个环境的配置信息。
- 然后将请求结构体中的url替换为
env
配置文件中个人选择的url。
- 将env配置文件使用yaml进行管理。
实战
default: dev
env_select:
dev: 127.0.0.1
test: 127.0.0.2
import requests
import yaml
class Api:
env = yaml.safe_load(open("env.yaml"))
data = {
"method": "get",
"url": "http://testing-studio:9999/demo.txt",
"headers": None,
}
# data是一个请求的信息
def send(self, data:dict):
# 进行替换
data["url"] = str(data["url"]).replace("testing-studio", self.env["env_select"][self.env["default"]])
r = requests.request(method=data["method"], url=data["url"], headers=data["headers"])
return r
if __name__ == '__main__':
api = Api()
print(api.send(api.data).text)
"D:\Program Files\Python38\python.exe" D:/Programs/DevOps/Python_Practice/lessons/api/env_demo.py
eyJ0b3BpY3MiOgp7CiJvcmFuZ2UiOiJtb3ZpZSIsCiJzaG9vbCI6InRlc3Rpbmctc3R1ZGlvIiwKInByZXNpZGVudCI6InNldmVuaXJ1YnkiCn0KfQo=
import yaml
def test_yaml():
env = {
"default":"dev",
"env_select":
{
"dev": "127.0.0.1",
"test": "127.0.0.2"
}
}
with open("env.yaml", "w") as f:
yaml.safe_dump(data=env, stream=f)