Query caching

response_cache.py
 1import asyncio
 2
 3from glQiwiApi import QiwiWrapper
 4
 5# Кэширование по умолчанию отключено, так как
 6# эта функция все ещё находиться в бета тестировании и
 7# константа DEFAULT_CACHE_TIME = 0, чтобы это исправить и включить кэширование
 8# нужно передать cache_time в конструктор класса QiwiWrapper
 9# или YooMoneyAPI
10wallet = QiwiWrapper(
11    # Токен, полученный с https://qiwi.com/api
12    api_access_token='token',
13    # Номер вашего мобильного номера с "+"
14    phone_number='+phone_number',
15    # Время кэширование запроса в секундах(пока ещё в бета тестировании)
16    cache_time=5
17)
18
19
20async def cache_test():
21    async with wallet:
22        # Результат заноситься в кэш
23        print(await wallet.transactions(rows_num=50))
24        # Этот запрос возьмется из кэша
25        print(await wallet.transactions(rows_num=50))
26
27        # Запросы ниже не будут браться из кэша,
28        # причиной тому есть разница в параметрах запроса
29        # Результат все также заноситься в кэш
30        print(len(await wallet.transactions(rows_num=30)) == 30)
31        # Однако, повторный запрос к апи будет выполнен, поскольку
32        # при попытке взятие результата из кэша валидатор сравнивает
33        # параметры запроса, если они не совпадают, то
34        # кэш игнорируется
35        # Повторный запрос к апи
36        print(len(await wallet.transactions(rows_num=10)) == 10)
37
38
39asyncio.run(cache_test())