requests api

This commit is contained in:
9cfa 2023-03-14 01:45:20 +01:00
parent 3f5946c43c
commit 7dfa5e1da7
1 changed files with 36 additions and 0 deletions

36
dependencies/request_api.py vendored Normal file
View File

@ -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