Существуют продукты, которые зависят от других продуктов и должны быть с ними связаны. В этом случае возникает проблема курицы и яйца. Для того, чтобы тебя все заинтегрировали нужно, чтобы ты был известен и популярен. Но для того, чтобы ты стал известен и популярен, нужно, чтобы тебя все заинтегрировали.
Одно из решений этой проблемы — эмуляция существующих API. В этом случае интеграция с твоим продуктом становится очень простой. Достаточно, например, заменить API endpoint.
Есть несколько примеров того, как это используется.
- Первый пример из прошлого — это эмуляция платежной системы Authorize.Net. Любая новая платежная система, которая хотела выйти на US рынок, сталкивалась с проблемой — чтобы платежную систему использовали, она должна работать внутри ecommerce платформ. Но чтобы платформы её заинтегрировали — надо, чтобы её хотели использовать много продавцов, чтобы был запрос на неё.
Поэтому часто платежные системы полностью повторяли API Authorize.Net, который работал везде. Поэтому если продавец хотел новую систему (допустим ему sales команда продала эту штуку как-то) — достаточно было просто заменить ссылку, куда идёт API запрос.
Мы в Эквиде в свое время использовали этот подход для того, чтобы получить на старте сразу какое-то количество платежных интеграций.
- Второй пример это эмуляция AWS S3 API. Существует хранилище файлов от Amazon — S3. С ним все умеют работать, все поддерживают его API. И если появляется новое хранилище, то оно всегда умеет работать с S3 API, чтобы его можно было сразу начать использовать.
Amazon, кстати, и сам использовал этот подход. Например в их попытке заменить бэкапы на кассетах (есть такие), они создают “виртуальные кассеты”, чтобы бизнесам было легко переключится.