В этой статье я перескажу свой опыт создания, развёртывания и продажи API на специализированном маркетплейсе. Мне не пришлось делать вебсайт или придумывать, как внедрить решение для обработки платежей – я просто написал код и развернул API.
Чтобы создать стартап, нужна команда, и каждый в этой команде должен быть мастером на все руки – программистом, маркетологом, продавцом. К тому же, это долгий и трудный путь, так что шансы на успех невелики. Но для запуска собственного проекта стартап – не обязательное условие. Я убежден, что можно сбывать продукты, не занимаясь ничем, кроме бэкенда.
За последний год я придумал план выпуска собственного продукта, который не предполагает работы с аудиторией и/или обработки платежей. Вся процедура состоит из трех шагов:
- Создать API, который решает какую-нибудь проблему
- Развернуть его на бессерверной архитектуре
- Распространить продукт через маркетплейс API
Создать API, который решает какую-нибудь проблему
Где-то полгода назад у меня возникла необходимость реализовать «процедуру», которая извлекала бы информацию из новостных статей, опубликованных в Сети. Предполагался скрипт, который принимает в качестве вводных данных URL сайта и возвращает структурированный отчет с такими сведениями, как название статьи, дата публикации, имена авторов, ссылки на медиаматериалы и так далее.
Визуализация функции от Владислава Кучаева
Мне потребовалось несколько минут, чтобы найти библиотеку Python, которая все это умеет. Еще несколько минут на написание кода – и у меня уже готов рабочий прототип. Когда на руках уже есть код, выполняющий нужные операции, обернуть его в API несложно. А вот развернуть и разместить этот API уже может оказаться сложнее.
Развернуть API на бессерверной архитектуре
Простая бессерверная функция
Мне нужно было по несколько раз обрабатывать несколько сотен статьей каждый час. Причем все одновременно. То есть пик в 200-800 адресов новостных статей, которые нужно проанализировать, а потом какой-то неопределенный промежуток времени – вообще ничего.
Мы уже делали решение на AWS, но мне подумалось, что AWS Lambda – оптимальный вариант для такого сценария. AWS Lambda – это бессерверный инструмент, функция как услуга; она запускает код в ответ на определенное событие. Обеспечивать поддержку серверам вам не нужно, вы платите только за то время, когда выполняется функция.
Я развернул Lambda-функцию. Все работало должным образом: с сотнями одновременных обращений она справлялась за счет параллельных вызовов. И, опять же, платить приходилось только за время выполнения. Вот тогда-то я и подумал: «А что, всё оказалось несложно. Интересно, кто-нибудь продает API, который выполняет эту операцию?».
Выдача Google по запросу “article extraction API”
Да, такие нашлись. На первый взгляд, все они делают то же самое, что я проделал для своего проекта. И это хорошие новости по двум причинам:
- На такие вещи имеется спрос
- Мне будет с кем себя сравнивать
Бессерверная API
Теперь нам нужно превратить нашу бессерверную функцию в бессерверный API. Я использовал Zappa, пакет Python, который сделал за меня всю основную работу. Написал API на Flask, затем развернул его на AWS Lambda и API Gateway посредством Zappa. Полный код API выложен в открытый доступ на моей странице на GitHub.
Другой отличный пакет для развертывания бессерверного кода, который работает со многими языками программирования и провайдерами облачных сервисов, называется Serverless.
Средняя стоимость обработки 50 000 обращений к моему API на AWS составила от 0,6 до 0,8 доллара, и это не учитывая бесплатного периода. Стандартная стоимость 50 000 обращений для решений такого типа колеблется от 30 до 250 долларов. Соответственно, главный вопрос в том, во сколько мне обойдутся другие статьи расходов, необходимые для распространения, продвижения и, самое-то главное, продажи API. Капитал я на этом, скорее всего, не сколочу, но стоимость подписки на Netflix, Spotify, Leetcode и кое-что другое оно, возможно, и покроет.
Распространить продукт через маркетплейс API
Вот что пишут на RapidAPI:
«Маркетплейс API работает по той же схеме, что и прочие онлайн-маркетплейсы: он дает провайдерам возможность выставлять свои API, а разработчикам – пользоваться ими. Как и другие разновидности маркетплейсов, маркетплейс API состоит из нескольких компонентов, в число которых входит портал для разработчиков и портал для провайдеров API».
Предупреждение: на момент написания статьи я не состою в партнерстве с RapidAPI, они мне не платят и не предоставляют каких-то особых условий. Эта платформа показалась мне наиболее подходящей, поэтому я выбрал её.
Чтобы разместить свой API на маркетплейсе RapidAPI, я предпринял следующие действия:
- Развернул API на AWS при помощи API Gateway и Lambda
- Создал x-api-key на API Gateway, чтобы ограничить доступ
- Привязал свой API к маркетплейсу RapidAPI
- Передал x-api-key администрации RapidAPI
Когда конечный пользователь посылает запрос на endpoint на стороне RapidAPI (со страницы моего продукта), там прослеживают, чтобы из его плана было вычтено нужное количество платежных единиц. Затем сервис RapidAPI обращается к моему API, используя тот x-api-key, который я им предоставил. Не имеет значения, сколько разработчиков используют мой сервис через RapidAPI – со стороны бэкенда всё это выглядит как череда идентичных обращений с одним и тем же x-api-key. Так что насчет пользователей у меня голова не болит: собирать плату, продумывать тарифные планы, предоставлять панель управления – все это больше не моя забота.
Обходится такое обслуживание в 20% от каждой транзакции. Если транзакций не поступает, платить ничего не нужно. Например, если я продаю тарифный план в 100 000 обращений в месяц за 50 долларов, то получаю 80% процентов этой суммы, то есть 40 долларов. Если этот план никто не покупает, мне не приходится отдавать RapidAPI деньги за размещение.
Запуск
Вы можете сходить на мою страницу и бесплатно опробовать API. Код полностью выложен в репозитории на GitHub, включая инструкции по настройке. Двадцатого апреля я выложил продукт на Product Hunt, так что рассчитываю скоро увидеть, есть ли в сообществе интерес к решениям такого рода.
Другие API, которые можно сделать
Наверняка какая-нибудь функция у вас уже есть – хотя бы что-то простое, что собирает воедино несколько библиотек Python (моя как раз из таких). Даже если вам кажется, что любой разработчик, которого вы видели в жизни, в состоянии сам воспроизвести этот код – неважно. Все равно найдутся тысячи людей, которые окажутся готовы его купить. В большинстве случаев им выгоднее заплатить за готовое решение, чем самим писать, развёртывать и поддерживать код.
Вот список API, на которые есть хороший спрос и которые способны написать многие разработчики:
- API для создания краткого содержания текста
- API для переформулирования текста
- API для категоризации текстов
- API для классификации изображений
- API для выявления и нормализации геоданных в текстах или на веб-страницах
- API для сбора почтовых адресов с заданного URL
В качестве ядра функциональности можно использовать библиотеки из открытого доступа – объединяйте их возможности и создавайте уникальный код.
К слову, если вы уже писали что-то подобное и применяли в работе, значит, вы хорошо знакомы с потребностями своей аудитории, а это большое преимущество при разработке продукта.
Создавайте сквозные решения
Лучший способ привлечь внимание к своему резюме – показать, что вы способны сделать что-то законченное. В первый раз устроиться на должность разработчика ПО, бэкенд-разработчика, data scientist или data engineer – очень непростое дело, но упоминание API, который вы уже довели до ума, выставили на рынке и успешно поддерживаете, значительно повышает ваши шансы. Многие работодатели намного охотнее открывают страницы продуктов на Product Hunt, чем репозитории на GitHub.
В заключение
API, которые встречаются мне на маркетплейсах – во основном, плоды трудов целых компаний, а не независимых разработчиков. Программное обеспечение, разработанное компанией, намного реже выдает ошибки. Но и просят они немало. Инди-разработчики, работающие над проектами на бутстрэппинге, скорее обратят взгляд на что-то менее навороченное, но подешевле.
Глобальная экономика сейчас входит в фазу рецессии. Бюджеты компаний будут сокращаться. Те, кто может предложить недорогие альтернативы существующим решениям, получат приток аудитории. Возможно, настало наше время.