From 7dfa5e1da79910edb2825eeaf4d6330427815612 Mon Sep 17 00:00:00 2001 From: 9cfa <9cfa@172.16.100.2> Date: Tue, 14 Mar 2023 01:45:20 +0100 Subject: [PATCH] requests api --- dependencies/request_api.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 dependencies/request_api.py diff --git a/dependencies/request_api.py b/dependencies/request_api.py new file mode 100644 index 0000000..e7ee139 --- /dev/null +++ b/dependencies/request_api.py @@ -0,0 +1,36 @@ +import requests + +#from dependencies.request_api import RequestsApi +#call = RequestsApi("https://google.com") +#r = call.get("/") + +class RequestsApi: + def __init__(self, base_url, **kwargs): + self.base_url = base_url + self.session = requests.Session() + for arg in kwargs: + if isinstance(kwargs[arg], dict): + kwargs[arg] = self.deep_merge(getattr(self.session, arg), kwargs[arg]) + setattr(self.session, arg, kwargs[arg]) + + def request(self, method, url, **kwargs): + return self.session.request(method, self.base_url+url, allow_redirects = False, **kwargs) + + def head(self, url, **kwargs): + return self.session.head(self.base_url+url, allow_redirects = False, **kwargs) + + def get(self, url, **kwargs): + return self.session.get(self.base_url+url, allow_redirects = False, **kwargs) + + def post(self, url, **kwargs): + return self.session.post(self.base_url+url, allow_redirects = False, **kwargs) + + @staticmethod + def deep_merge(source, destination):< + for key, value in source.items(): + if isinstance(value, dict): + node = destination.setdefault(key, {}) + RequestsApi.deep_merge(value, node) + else: + destination[key] = value + return destination \ No newline at end of file