Что такое Open API и Open Banking? Откуда они взялись и почему так бурно развиваются? Куда движется технология и зачем это нужно знать? Пробуем разобраться в этом посте.

Что такое Open API

Начнем с краткого ликбеза для тех, кто не в курсе. Откуда растут ноги? Что в действительности такое API и Open API? И что под этим сегодня подразумевают повсеместно?

API

Application Programming Interface (API, программный интерфейс приложения) - это описание программной системы, позволяющее внешним программам взаимодействовать с ней на прикладном уровне, без понимания деталей реализации. Оно позволяет связывать между собой программы, написаные разными разработчиками (возможно, из разных компаний), на разных языках программирования и имеющих приципиавльно разную архитектуру. API включает в себя перечень доступных вызовов, описание структуры данных и протокола взаимодействия. При этом API абстрагировано от способа его реализации: несколько абсолютно разных программ могут реализовывать одно и то же API.

API используется для описания (и взаимодействия с) программных библиотек (например, используемой для отрисовки графиков в этой статье), программных платформ (например, JAVA или NodeJS), операционных систем (например, Android), баз данных (например, MongoDB) или даже блокчейнов (например, Metamask). Вообщем, много для чего.

Но особую популярность в эпоху интернета конечно же получили Web API. Они выставляются веб сервисами. Примеры можно перечислять долго - от почты (Gmail) и социальных сетей (Facebook, LinkedIn) до мессенджеров (Telegram) и видеочатов (Zoom APIs), от энциклопедий (Wikipedia) и музыкальных платформ (Last.fm) до видеохостингов (Youtube), от платежных систем (PayPal, Яндекс.Деньги) до бирж (NASDAQ) и сервисов документооборота (DocuSign), от хостинга (AWS) до управления доменами (GoDaddy) и так далее до бесконечности. Именно Web API имеют ввиду когда говорят про Open API. И именно о них пойдёт дальше речь в этом посте.

Так что же такое открытые API?

Open API

Изначально открытым называлось любое API, открытое его создателем публично для использования сторонними разработчиками.

Строго говоря, открытыми могут быть все виды API, а не только Web API. И не только RESTful (как API данных по COVID-19), но и SOAP веб-сервисов (например, Открытое API ФНС “Проверка Чеков”). Или GraphQL или даже gRPC… Все эти чудные слова - названия различных архитектур программных интерфейсов приложений. В базе своей все они представляют собой API. И конечно могут быть открытыми.

НО. Веб-сервисы архитектуры REST стали самыми популярными. И в итоге под Open API стали иметь ввиду именно их.

Open API - это стандартная, независимая от языка программирования (language agnostic) спецификация для RESTful Web API. Она позволяет как людям, так и машинам понимать логику веб-сервисов, без доступа к их исходному коду и документации. 1

Ранее этот стандарт носил более скромное название Swagger 2.0. Впрочем, немного истории.

История стандарта Open API

  • В 2010 году некоммерческая организация Wordnik, занимающаяся онлайн словарями, в лице разработчика Тони Тэма, опубликовала спецификацию Swagger под лицензией открытого кода.

  • В марте 2015 компания SmartBear, производящая популярный (и тоже опенсорсный) инструмент для работы с API, SoapUI, поглотила проект Swagger.

  • В ноябре 2015 SmartBear объявила о создании консорциума OpenAPI Initiative под крылом Linux Foundation.
    В консорциум сегодня входят такие компании как Google, Microsoft, IBM, eBay, Red Hat, Bloomberg и другие. В качестве своего вклада в общее дело развития открытых АПИ, SmartBear пожертвовала спецификацию Swagger 2.0 (к тому времени ставшую де-факто стандартом индустрии RESTful API), переименовав её в Open API Specification (OAS).

Open API Specification (OAS) - это специально разработанная грамматика, в которой описываются интерфейсы Open API. Благодаря OAS становится возможным:

  • автоматическая генерация человеко-читаемой документации по сервисам;
  • автоматическая генерация кода на различных языках программирования для реализации
    • клиентов к сервисам,
    • серверной логики сервисов,
    • тестов сервисов,
    • и многого другого.

Полное описание данного формата доступно по ссылке

OAS позволяет разработчикам со всего мира использовать единый язык для описания создаваемых API. Это даёт очень мощное подспорье для интеграции разнообразных продуктов и сервисов. Благодаря чему организациями сообща создаются вещи, гораздо более значительные, чем они могли бы создать поодиночке. И всё же Open API это не только формат спецификации. Это также набор инструментов, подходов, лучших практик по использованию инструментария с тем, чтобы разработка, поддержка, развитие и документирование API и последующие интеграции шли наиболее эффективным и устойчивым образом. С этой точки зрения не будет преувеличением сказать, что Open API уже перерастает из формата в целую методологию.

Распространение API

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

Согласно данным опроса The 2019 State of API Survey, проведённого компанией SmartBear:

  • 3/4 от организаций, разрабатывающих API, создают их как для ипользования внутри компании, так и для внешего использования сторонними разработчиками
  • 2/3 от опрошенных организаций начали разработку своих API в течение последних пяти лет.

Катализаторы роста

Бурному распространению API способствуют:

1. Необходимость ускорения цифровой трансформации

Потребность в:

  • увеличении числа точек соприкосновения с пользователем;
  • создании вовлекающего пользовательского опыта, перетекающего между устройствами;
  • расширении взаимодействия с пользователем и сбора данных (с целью лучше понимать своего клиента).

2. Увеличение покрытия и скорости сетей.

А также быстрый рост числа устройств в сети.

3. Происходящая революция финансовых сервисов

  • Развитие Open Banking

    Open Banking - процесс предоставления банками услуг и данных через открытые API. Запущен в ряде стран:

    • Великобритания, 2016г. Правительство обязало английские банки делиться данными клиентов (по их просьбе) с другими банками и третьими сторонами.2 Эти правила вступили в силу в 2018г.
    • Евросоюз, директива PSD2. Принята Европарламентом в 2015г. Вступила в силу в сентябре 2019г. К началу 2020г. основные европейские банки приняли подход открытых API. Хотя проблем в имплементации еще предостаточно.
    • Сингапур, центробанк (MAS) выпустил документ Finance-as-a-Service: API Playbook с описанием 411 финансовых API.
    • Япония, 2018г. Внесены поправки в Закон о Банковской Деятельности (The Japanese Banking Act), стимулирующие развитие финтехов и открытых API в банках.
    • Россия, 2019г. Ассоциацией ФинТех разработана Концепция Открытых API. Готовятся отраслевые стандарты, совместно с ЦБ и ключевыми участниками рынка.

    Примеры реализации Open Banking

    В ответ на инициативы правительства, в мае 2018г. британский HSBC запустил приложение Connected Money. Оно позволяет клиентам банка просматривать все свои банковские счета и кредиты в одном приложении.

    Barclays заявил, что будет первым британским банком, позволяющим пользователям своёго мобильного приложения просматривать свои счета в других банках.

  • Появление услуг Banking-as-a-Service

    Banking-as-a-Service (BaaS) - соединение банков с финтех-сервисами напрямую через открытые интерфейсы.

    Пример сервиса BaaS:

    В 2018 году испанская BBVA запустила свою BaaS платформу Open Platform в США. Она предоставляет набор API, позволяющий компаниям предлагать своим клиентам отдельные финансовые продукты без построения собственной банковской инфраструктуры.

  • Растущее число пользователей мобильного банкинга
    Согласно исследованию Juniper Research, в 2020 году аудитория мобильного банкинга достигнет 2 млрд человек .
    Как следствие - распространение спроса на полнофункциональный мобильный банкинг. А он, в свою очередь, потребует множества интеграций.

Почему открытые API?

По каким причинам организации выбирают открытые API?

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

С другой стороны, регуляторное вмешательство в ряде стран директивно принуждает финансовые организации внедрять Open Banking. Но так как эти требования выставлены одинаково для всех игроков банковской отрасли (не ставит кого-то из них в особое положение), то это открывает большие возможности для конкуренции и здорового развития рынка. На рынок выходят так называемые “третьи стороны” (в лице финтех-проектов), разрабатывающие новые финансовые приложения. И в то же время устоявшиеся игроки рынка стимулируются к улучшению своих сервисов, чтобы не потерять своих клиентов. Часть из них, в свою очередь, будет ради этого заключать партнерства с финтехами.

Обратимся ко всем индустриям в целом, а не только к банковской сфере. Всё больше организаций сегодня осознают бизнес ценность API. При их разработке они преследуют следующие цели:3

  1. Улучшение взаимодействия между своими системами и командами,
  2. Сокращение времени разработки,
  3. Расширение функционала продукта,
  4. Партнерство с внешними организациями,
  5. Уменьшение стоимости разработки,
  6. Развитие мобильных приложений.

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

Они, в свою очередь, определяются удобством и универсальностью инструментария разработчика, а также design-first подходом к разработке и стандартизацией API.

Open API спецификация популярна неслучайно, ведь именно эти ценности заложены в её основе:

  • Удобство разработки. (Put developers at first).
    До появляния форматов описания API, разработчики вручную писали код их серверов, вручную же писали их описание, чтобы другие разработчики, разобравшись с описанием, вручную написали код клиентов к этим API. Целая куча ручной работы неизбежно приводила к расхождениям и ошибкам.
    С приходом формального языка описания OAS, проектирование API значительно упростилось. Появились инструменты автоматической генерации исходного кода серверной и клиенсткой частей, а также эмуляторов и автоматизированных тестов. Это снизило число ошибок и повысило качество разработки, одновременно сделав её проще.

  • Простота и понятность в использовании.
    OAS пишется в формате yaml, в котором человеко-читаемый текст совмещен c машино-читаемой спецификацией.

  • Design-first (not code-first). Обсуждение, проектирование новых и внесение изменений в существующие API спецификации происходит до непосредтсвенной реализации интерфейса в коде.
    Как говорится, семь раз отмерь, семь раз проверь.

  • Стандартизация.
    Перечисленные выше фичи, раскрываемые OAS, закладывают хороший базис для стандартизации API.

Как результат, 80% компаний, разрабатывающих RESTful API, используют Open API специцифкацию3.

Тренды 2020 в разработке API

Ведущие разработчики инструментария для создания API (SmartBear, OpenAPI Initiative, Apigee), ориентируются на запросы программистов отрасли. Среди основных трендов можно назвать:

  • Улучшение разработческого опыта.
    Создание среды (workspace) для совместной работы групп разработчиков над API.
    Сегодня программист, работающий над API, вынужден использовать до 5 различных инструментов одновременно.
    Поэтому простота использования и внедрения, интеграция с существующими средами разработки и возможность коллаборации - первоочередные критерии современного инструментария для разработки API.

  • Бесшовная интеграция большого числа сервисов и платформ.
    Подразумевает:
    • Нативность. Настраиваемое автоматизированное управление и шлюзы для “горячего” подключения новых сервисов. Поднятие эмуляторов API в считанные секунды.
    • Генерацию кода. На 20+ языках программирования для новых API по заданной спецификации. SDK для клиентских приложений.
    • CI/CD парадигму тестирования, сборки и доставки новых релизов приложений. Валидация OAS при сборке проекта. Использование OAS при тестировании, виртуализации и документировании API.
  • Design-first принципы в процессах разработки.
    Встроенная возможность обсуждения дизайна API и получения обратной связи.
    Совместное использование и распределенная работа над API.
    Дизайн под рукой на всех этапах жизненного цикла продукта.
    Повторное использование готовых решений и обмен ими между командами и проектами.

  • Cтуктура в масштабе.
    Деление на подпроекты и управление доступом и обменом ресурсами между командами.
    Надежная система версионирования API.

  • Микросервисная архитектура.
    Микросервисы будут основым драйвером внедрения API на протяжении последующих нескольких лет.
    Эти две технологии тесно сплетены. К примеру, GrpaphQL возник как API шлюз для микросервисов.

  • Стандартизация. Пожалуй, основной вызов для индустрии API на ближайшее время.
    Необходимы:
    • Внутренние стандарты организаций.
      Сквозные правила дизайна, обнаружение проблем до имплементации, перекрестный ревью и обратная связь в режиме реального времени.
    • Единые технологические стандарты для описания и разработки API.
      OAS является здесь флагманом, но важна гибкость в его эволюционировании и адаптации под развивающиеся технологии.
    • Отраслевые стандарты.
      Такие например, как стандарты банковских API (PISP, AISP и множество возникающих следом), как в моделях данных, так и на транспортном уровне и вопросах шифрования и обеспечении безопасности.

Заключение

Open API относятся к разряду технологий, стремительно меняющих наш мир. Банки уже перенесли свои сервисы в онлайн среду, и теперь настаёт период их бурного развития, скрещивания (интеграций) и выведения новых видов. Этот эволюционный процесс требует проведения множества экспериментов, результатом которых станут новые сервисы и прорывные бизнес модели. Выживет наиболее приспосабливаемый к новым реалиям. Поэтому понимание технологии, лежащей в основе данного процесса, и внедрение подходов, инструментов и методологий для использования открытых API - важная часть стратегии любого бизнеса.

456