Обзор сервисов для получения актуальных курсов валют

  • Tutorial

На текущий момент есть много сервисов, откуда можно получить эти пресловутые курсы, но все они либо неудобные, либо у них отсутствует одна или более нужных вам валют.

Краткий обзор

Конечно, на просторах интернета можно найти куда больший список сервисов и сайтов, предоставляющих данные о курсах валют, но я перечислю лишь некоторые, а расскажу более подробно только об одном.

  • cbr.ru - Центральный банк Российской федерации.

    В разделе Технические ресурсы -> Получение данных, используя XML - есть примеры, в формате XML можно получить курсы. Если вам нужны совсем точные курсы, так сказать, от производителя - вам сюда. Но сразу скажу список вас не сильно обрадует, да и XML и возможные перебои в работе сайта, а также выходные дни, когда курсы меняться не будут вам обеспечены.

  • сервисы apilayer.com - самые современные АПИ. Есть бесплатные планы. Куча возможностей. О них мы сегодня поговорим.

  • currate.ru - якобы бесплатный сервис для получения курсов валют.

Почему в этот список вошел никому не известный Currate сервис, потому что по моему мнению, что это некий посредник между apilayer.com, т.к. позиционируется как абсолютно бесплатный, но с ограничением в 1000 запросов в месяц.

Причем, ограничение это появилось сразу после того, как его ввел apilayer.com и его сервисы. Возьмите на заметку, те, кто им пользуется. Возможно, это не лучший вариант.

В общем, выбирая сервис для курсов валют обращайте, пожалуйста, внимание на это. Не стоит начинать стартап с использования подобных фейков, они потенциально могут уронить ваше будущее приложение.

Currency Layer

currencylayer.com - полезнейший сервис для получения в режиме онлайн информации о курсах и стоимости 168 мировых валют. Данные собираются из множества источников, вроде сайтов банков, коммерческих информационных сервисов. Ответ в формате JSON.

Есть бесплатный план - 1000 запросов в месяц, правда с тем ограничением, что все курсы будут по отношению к USD.

Но самое интересное на мой взгляд, - это купить за 10 долларов план Basic, вы получите 10000 запросов в месяц + Source Currency Switching, что вам позволит менять базовую валюту, что очень удобно, если вы как и я, например, пишите свой платежный шлюз.

Лирическое отступление

К тебе обзора это, конечно, не относится, но 10000 запросов в месяц, да, собственно говоря хоть 100 тыс запросов - не резиновые, и поверьте, кончаются они очень быстро.

Поэтому, если вам нужна конвертация и вы используете сервисы Api Layer, то рекомендую поделить N запросов в месяц на 30 дней и по крону забирать курсы с полученным интервалом. У меня получилось раз в 5 минут. Можно сказать, практически онлайн.

  • Во-первых, вы получите бесперебойную работу вашего скрипта по синхронизации курсов, и не получится так, что в один день АПИ вам вместо курсов дает ошибки.

  • Во-вторых, вы выработаете весь лимит по запросам в месяц, что, как минимум, окупит ваши затраты, нет смысла платить за 10к запросов и выработать только 2к.

Coin Layer

Криптовалюты росли с тех пор, как Биткойн начал набирать обороты еще в 2011 году. Сейчас криптовалюты торгуются на мировых биржах, и важность концепции блокчейна резко возросла.

coinlayer.com - предоставляет собой универсальное API-решение для получения данных о курсах обмена криптовалют в реальном времени и за прошлые периоды, которое отличается простотой, надежностью и производительностью.

На данный момент есть поддержка 385 криптовалют с 25 бирж.

Полный список поддерживаемых криптовалют можно найти здесь и целевых валют здесь.

Fixer

fixer.io - если верить описанию, данный сервис поддеживает 170 мировых валют. Данные об обменных курсах 170 мировых валют в режиме реального времени, обновляются каждые 60 секунд.

Данные о валютах, представляемых Fixer, поступают от поставщиков финансовых данных и банков, включая Европейский центральный банк.

Честно говоря, большой разницы Fixer.io от Currency Layer я не увидел.

Есть не большие отличия по эндпойнтам, возможно пара валют, но последний также предоставляет данные о драг. металлах.

Но все же, на мой взгляд Fixer.io более современный и продвинутый инструмент, т.к. по документации на GitHub, которая чаще обновляется и по описанию на самом сайте, кажется, что Fixer.io инструмент пришедший на смену Currency Layer и в будущем он займет лидирующее место в линейке Api Layer.

Заглянем под капот

За, что я люблю сервисы Api Layer, так это за универсальный подход. Они все работают идентично.

Все что вам нужно это зарегистрироваться и получить токен, и, по желанию, купить тарифный план.

А предоставляемые бесплатные запросы, помогут пощупать данный сервис, прежде чем платить за него. Да и работа с АПИ не вызывает никаких затруднений. Ответы в формате JSON. Есть поддержка JSONP. Очень понятная документация с кучей примеров.

Получаем ключ доступа

После регистрации каждому пользователю назначается личный ключ доступа к API, это уникальная комбинация букв и цифр, предоставляемая для доступа к любому из энд-пойнтов API.

Чтобы пройти аутентификацию с помощью API, просто прикрепите свой access_key к предпочтительному URL-адресу (в дальнейшем это будут энд-пойнты).

Доступные End-пойнты

  • live - для получения самых свежих данных об обменном курсе

  • historical - для получения исторических ставков за определенный день

  • convert - для конвертации одной валюты в другую

  • timeframe - для запроса курсов обмена на определенный период времени

  • change - для запроса любых параметров изменения валюты (маржа, процент)

Работа с АПИ

https://api.currencylayer.com/live?access_key=YOUR_ACCESS_KEY

В ответ вы получите JSON, примерно с таким содержимым:

Пример ответа в формате JSON
{
    "success": true,
    "terms": "https://currencylayer.com/terms",
    "privacy": "https://currencylayer.com/privacy",
    "timestamp": 1430401802,
    "source": "USD",
    "quotes": {
        "USDAED": 3.672982,
        "USDAFN": 57.8936,
        "USDALL": 126.1652,
        "USDAMD": 475.306,
        "USDANG": 1.78952,
        "USDAOA": 109.216875,
        "USDARS": 8.901966,
        "USDAUD": 1.269072,
        "USDAWG": 1.792375,
        "USDAZN": 1.04945,
        "USDBAM": 1.757305
    }
}

Наряду с source валютой, timestamp и другой мета-информации, API вернет quotes объект, содержащий все доступные или указанные валютные пары с соответствующими значениями обменных курсов (котировками).

Переключение исходной валюты

Данная опция платная и становится доступна, начиная с плана Basic / 10$ в месяц.

Исходная валюта (часто также называемая «базовой валютой») - это валюта, относительно которой все значения котировок в наборе результатов API являются относительными (значение по умолчанию) USD.

Исходную валюту можно найти в source объекте ответа API . Это также первый трехбуквенный код валюты возвращаемой валютной пары. (например USDEUR, где USD находится исходная валюта)

Обратите внимание, что только валюты, которые являются частью соответствующего набора результатов (quotes), могут быть установлены в качестве исходной валюты.

Благодарю за внимание.

Посткриптум

К сожалению, более-менее нормальных клиентов под эти сервисы ApiLayer, для того же PHP на GitHub попросту нет. То, что есть, с этим работать просто невозможно.

Я не рассматривал кустарные либы с кол-вом звезд < 20, без тестов, линтеров и прочего, без поддержки PHP 8 и прочих плюшек вроде Larave / Symfony.

Поэтому для вас мои дорогие читатели свеженький опрос.

Если наберется достаточное кол-во желающих, я напишу удобные клиенты под Laravel / Symfony и выложу на GitHub в своем профиле.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Есть ли у вас потребность в клиенте для этих сервисов?

  • 18,8%Да, Laravel6
  • 9,4%Да, Symfony3
  • 75,0%Нет24

Средняя зарплата в IT

120 000 ₽/мес.
Средняя зарплата по всем IT-специализациям на основании 3 843 анкет, за 1-ое пол. 2021 года Узнать свою зарплату
Реклама
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее

Комментарии 9

    +1
    но я перечислю лишь некоторые, а расскажу более подробно только об одном

    Пахнуло рекламой

    currate.ru — якобы бесплатный сервис для получения курсов валют.

    Да у них сертификат вон протух, сразу никакого доверия к таким

    Я пользуюсь вот этим www.cbr-xml-daily.ru XML или JSON формат, для бесплатного функционала ограничений хватает за глаза, а для остального там даже написано что сделать чтобы ограничений хватало )
      0
      Пахнуло рекламой

      Жаль, что вам так показалось.


      Я никак не отношусь к этой компании и рекламировать никого не планировал. Я рассказал об инструментах, с которыми работал, и на мой взгляд они достойны внимания, удобные и современные.

        +1
        Просто заходя в статью с таким названием ожидаешь увидеть масштабное исследование массы инструментов, а видишь как будто бы рекламу одного инструмента, упоминание одного платного, одного подозрительного и… всё

        А думаешь: Ну вот я юзаю такой инструмент, а вдруг есть что лучше, ну ка почитаем… эм… а где обзор то?
          0
          Обязательно учту в будущем этот момент.
      +1
      После того, как рбкшный сервис пол дня показывал вчерашний курс валюты, доверяю только cbr.ru
        –1
        Я не рассматривал кустарные либы с кол-вом звезд < 20


        а чо так?)))
        Вопрос в получение и отображений простейшего по структуре json или про плюшки типа кеш, роли и прочей шелухи?
        Клиент пишется 2 минуты, просто он как либа не нужен никому, кому нужна либа в 2 строки, а?
          0
          Позвольте с вами не согласиться.

          В АПИ не один метод, куча опций, доп справочников + обработка ошибок и других нестандартных ситуаций, мне вот например, удобнее подключить через composer некий клиент, который уже умеет общаться с АПИ и прописать в конфиге access_key.

          Я не хочу вникать в тонкости и нюансы, думать об эндпойнах, хидерах, формировать реквесты, обрабатывать респонсы, использовать в проекте всякие curl с передачей туда непонятно чего, плюс обмазывать свой проект доп классами и обработчиками, я например, знаю этот сервис и этого достаточно.

          Далее просто чтобы сервис работал:
          — подключить сервис через DI
          — чтобы был публичный интерфейс в соответствии с АПИ, чтобы не приходилось доку читать
          — чтобы все методы возвращали DTO, чтобы было понятно что там, потому что с json приведенному к массиву работать не удобно, нужно проверять наличие ключей, опять же знать какие там ключи и тд.

          А если я захочу поменять что-то, я просто поменяю библиотеку, точно также.
          Это как минимум удобно.

          Также, используя какой-то сторонний компонент, я хочу надеяться, что он работает как надо, для этого код должен быть покрыт тестами на 100%.

          В общем, ИМХО, он все-таки нужен.
            0
            Ну и не 2 минуты пишется нормальный клиент, если мы говорим про что-то более менее нормальное юзабельное.
            0
            мы в компании используем coingate, пример — api.coingate.com/v2/rates/merchant/EUR/RUB

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое