Я пытаюсь изменить функцию request
, чтобы она принимала разные аргументы в зависимости от вызова API.Например: в post_categories
мне нужно отправить третий параметр data
, который включает тело, которое я хочу опубликовать, но функции get_categories
не нужен третий параметр.Я добавил **kwargs
в функцию запроса, но получаю ошибку: TypeError: 'data' is an invalid keyword argument for this function
class ApiGateway():
base_url = 'https://api.com/v3/'
def request(self, method, endpoint, **kwargs):
url = f'{self.base_url}{endpoint}'
kwargs.setdefault('headers', {})
kwargs['headers'].update({
'Authorization': f'Bearer ${self.token}',
'Accept': 'application/json',
})
response = requests.request(method, url, **kwargs)
return response.json()
def get_categories(self, merchant_id):
endpoint = f'merchants/{merchant_id}/categories'
return self.request('GET', endpoint)
def post_categories(self, merchant_id):
update = {
'payment_method': {
'token': 1234,
'data': '123556'
}
}
endpoint = f'merchants/{merchant_id}/categories'
return self.request('POST', endpoint, data=json.dumps(update))