У меня есть ряд функций, которые совершают вызовы на api, используя requests. Таким образом, количество вызовов, подобных приведенному ниже (упрощено для данного примера):Лучший способ аутентификации всех запросов?
requests.get(url, data=data, auth=('user','password'))
Все просьбы будут заверены и я хотел бы найти более рациональный способ аутентификации все запрос, а не просто в том числе auth=('user','password')
часть в каждом звонке.
Моя первая мысль заключалась в том, чтобы создать подкласс, который наследуется от класса requests
, а затем переопределить функцию get
. Что-то, как показано ниже:
class authRequests(requests):
def get(url, data):
return requests.get(url, data=data, auth=('user', 'password'))
, а затем использовать authRequests.get
вместо requests.get
. У меня нет опыта работы с python, поэтому это может быть не рабочий пример, но мне интересно, будет ли это правильный подход или я должен использовать другой метод для этого?
Ahh интересно - так что, если у меня есть 15 функций, которые содержат призывы к 'get' могу я просто обернуть все функции с' with' заявлением ? –
@AbeMiessler yup, вам не нужно использовать диспетчер контекста 'with', можно создать экземпляр объекта сеанса и передать его. Если функции являются методами одного и того же класса, вы можете создать экземпляр сеанса как атрибут экземпляра: 'self.session = requests.Session()' и использовать его для запросов 'self.session.get (url, data = data) '... Надеюсь, что это помогает. – alecxe
Красивые - спасибо !!! –