QIWI-API / bill-payments-dotnet-sdk

.Net SDK для единого платежного протокола эквайринга и QIWI Кошелька.
MIT License
17 stars 7 forks source link

Планируется ли добавление асинхронных методов? #6

Closed Fitch24 closed 5 years ago

Fitch24 commented 5 years ago

Добрый день. Если я правильно понял, все запросы к API QIWI-Кассы в данный момент выполняются синхронно. Планируется ли добавление в SDK асинхронных версий этих методов, например, CreateBillAsync?

Jamaska commented 5 years ago

Добрый день ! На сколько критична необходимость данных методов ? Для каких целей вы планируете их использовать ?

Fitch24 commented 5 years ago

Для каких целей вы планируете их использовать ?

Для более эффективного распределения ресурсов сервера? SDK выполняет все HTTP-запросы к QIWI-API синхронно. Например, если в контроллере ASP.NET/ASP.NET Core мы используем такой код: var bill = client.CreateBill(info); то выполнение HTTP-запроса к API ложится на вызывающий поток, т.е. на один из потоков для обработки запросов к серверу ASP.NET. Но если бы SDK мог отправлять HTTP-запросы к API асинхронно и для этого были бы соответствующие методы, например: var bill = await client.CreateBillAsync(info); то это освобождало бы вызывающий поток на время операции и он мог бы обрабатывать другие входящие запросы, поступающие серверу, что, теоретически, повысило бы максимальное количество одновременно обрабатываемых запросов сервером (запросов в секунду). Или я ошибаюсь, и гугл меня надурил (1, 2)?

На сколько критична необходимость данных методов ?

Затрудняюсь ответить, но однозначно предпочел бы использовать асинхронные методы (если бы они были), вместо синхронных. Собственно из-за этого и отказался от использования SDK, реализовав запросы к API собственным кодом (еще меня смутило, что SDK добавляет свои customFields к счетам, но это не критично).

Jamaska commented 5 years ago

Рассматриваем возможность доработки, спасибо.

Jamaska commented 5 years ago

@Fitch24 , доработали sdk , теперь есть асинхронные методы.