Comments 6
А что внутри, редис ?какая производитель ность ?
А что внутри, редис ?
Rails, PG, Sidekiq, Redis. Есть планы на эксперименты с Elixir, чтобы сравнить затрату ресурсов сервера с производительностью приложения.
какая производитель ность ?
Если говорить про публичную версию, которая сейчас крутиться на https://irates.io, то при текущей нагрузке, хватает 1 app сервера (4GB RAM, 2 AMD vCPUs, 80 GB SSD). На такой конфигурации app сервера, я делал load test на 80rps, ничего не улетало в потолок, "average response time" запросов был 391ms
Пример 1: У вас карта в евро. Вы совершаете покупки в отпуске в Италии тоже в евро.
Ах как хорошо мы плохо жили...
Все популярные API скупил APILayer, теперь fixer.io & co - платные
Раз уж вы делаете новый эндпоинт, то имеет смысл хотя бы на уровне структуры данных быть похожим на какой-нибудь существующий, иначе чтобы поддержать ещё один - надо будет каждые полгода по новому провайдеру со своей уникальной схемой добавлять
Ситуация настолько плохая, что мне пришлось библиотеку сделать, чтобы не переписывать код под каждый новый сервис. Можете посмотреть и еще пару источников себе в бэкенд утащить:
... особенно в случаях, когда провайдер не поддерживает валюту платежа...
Банк-отправитель обычно предоставляет услугу внутренней конвертации, когда платёж сперва конвертируется в валюту платежа, а потом "выгоняется". Конечно, если валюта платежа экзотическая или сопряжена со сложностями текущего времени, то, наверное, могут быть нюансы и не всякую валюту можно получить.
Я верно понял, что разрабатывается платёжный шлюз, независимый от конкретного банка и платёжной системы?
У вас карта в евро. Вы совершаете покупку в Польше в польских злотых. В этом случае схема пересчёта следующая: польские злотые (PLN) → пересчитываются в USD по курсу Mastercard, далее USD → пересчитываются в CNY по курсу Mastercard, затем CNY → пересчитываются в евро по курсу банка.
Справедливости ради стоит сказать, что базовая валюта карты может разниться от страны/юрисдикции и даже банка, выпустившего ту или иную карточку. В примере, насколько я понимаю, речь про некие нововведения в Беларуси.
"rounding": 2,
Если я верно понял, то предоставляется возможность клиенту запросить результат с округлением до некоторого знака. Если так, то надо быть готовым к тому, что для некоторых случаев может вернуться ноль.
И ещё. Примера ответа в статье не заметил, поэтому, на всякий случай, отмечу, что некоторые источники курсов оперируют такими параметрами, как:
количество единиц валюты в курсе (пример: курс для JPY может быть указан за 100 иен, а не за одноу, см. пример: https://cbr.ru/currency_base/daily/)
признак обратного курса (обратной котировки).
Учёт этих особенностей, как в своё время показала практика, было самым сложным в расчёте конвертации.
История создания API для курса валют