{"id":14291,"url":"\/distributions\/14291\/click?bit=1&hash=257d5375fbb462be671b713a7a4184bd5d4f9c6ce46e0d204104db0e88eadadd","hash":"257d5375fbb462be671b713a7a4184bd5d4f9c6ce46e0d204104db0e88eadadd","title":"\u0420\u0435\u043a\u043b\u0430\u043c\u0430 \u043d\u0430 Ozon \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u0442\u0430\u043c \u043d\u0435 \u043f\u0440\u043e\u0434\u0430\u0451\u0442","buttonText":"","imageUuid":""}

Что продакт менеджер должен знать об API?

Опытный продакт строит только то, что нужно, а для всего остального просит команду интегрироваться с готовыми API. Чтобы написать хорошие требования к продукту и понять предложения API других команд, продакт должен понимать структуру API: endpoint, input, output, errors.

Простой пример: покупка кофе

API — это способ попросить систему выполнить за нас работу. Мы даем что-то на входе (input) и получаем ответ (output) на выходе. При этом нам совершенно все равно, что именно система делает для получения результатов — в этом вся суть.

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

Бизнес-пример: API прогноза погоды

Представим, что вы — продакт приложения для бегунов и хотите интегрировать прогноз погоды в приложение (не всем нравится бегать под дождем). Вы немного погуглили и нашли этот документ (платного) API погоды:

# Input Parameters: - Location: "Москва" - Date/Time: e.g. "2024-02-08 15:00:00"
# Output Parameters: - Temperature: "25°C" - Weather Condition: "солнечно", "дождь", "облачно" и т.д. - Precipitation: "20% вероятность дождя" # Potential errors - Неизвестная локация - Дата/время в прошлом

Что мы здесь сразу видим? Вы можете передать город (он у вас есть!), дату/время (они тоже есть) и получить температуру в градусах Цельсия, а также погодные условия. А еще:

— У пользователей будут проблемы в пригородах подальше от городов (поскольку API не поддерживает простые координаты, а только города).

— Температура указана только в градусах Цельсия (пострадают клиенты из США и прочих стран, где используют Фаренгейты). Поэтому надо будет добавить свой простой "переводчик" между температурами.

— Ничего не говорится о ветре (бегунам может быть некомфортно, если ветер будет сильнее определенного порога).

Этого достаточно, чтобы либо поставить команде задачу по интеграции с этим API, либо продолжить поиск и найти что-то еще. Обратите внимание, что мы, как продакты, сделали этот анализ всего за несколько минут, даже не поговорив с техническими специалистами!

Обратный пример: продакту нужна новая функция через API

Предположим, что мы хотим добавить в наше беговое приложение новую крутую фичу — маршруты для бегунов. Да, Google может построить маршрут для водителей и пешеходов, но бегунам нужно немного другое. Мы предполагаем, что пользователь может указать параметры тренировки и получить идеальный маршрут для пробежки. Запрашиваем у бэкенд команды следующий API:

# Input Parameters: - Distance: сколько километров пользователь хочет сегодня пробежать - Time: то же самое, только в минутах - Preference: парки, поля, урбан, вдоль реки - предпочтения по видам - Circular or not: круговой маршрут (или нет)
# Output Parameters: - Array of coordinates (lat, long): список координат для отрисовки на карте - Descriptions: список указаний ("На перекрестке поверни налево на ул. Ленина") - Total distance: суммарное расстояние # Potential errors - Не получилось построить маршрут - Расстояние слишком короткое/длинное - Данное предпочтение пользователя не поддерживается - Системная ошибка

Заметьте, как мы перешли от невнятного «маршрут для бегунов» к более конкретному соглашению по input / output. Это уже можно обсуждать с технической командой: смогут ли они это построить, чего не хватает и т.д.

Мы не упоминаем, как это будет реализовано: хитрым ML-ем или с помощью какого-то простого набора правил. Но мы четко говорим, что пользователи будут отправлять и что мы ожидаем в ответ — это хорошее ограничение для того, чтобы начать работу.

Вывод

Продакт должен помнить следующее:

— API состоит из input & output (включая возможные ошибки).

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

— Если нужно выдать требования для других сервисов, вы можете сделать это в форме API input/output. Это применимо, если вы хотите предложить (или продать) часть своего функционала через API.

Хотите попробовать вызвать API своими руками? В реальности это проще, чем кажется. Ссылка на тренажер в первом комменте - без регистрации и СМС. Будет полезно любому IT-лидеру, которому хочется говорить с командой на одном языке.

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

0
3 комментария
Vladimir Kalmykov
Автор

Вот обещанный мини-тренажер по API (без регистрации и СМС): https://app.productdo.it/invite/try-out-redirect/?temp_student=1&module=product_health_taxi_ru&lesson=techpm_api&lang=ru&utm_source=vc

Ответить
Развернуть ветку

Комментарий удален автором поста

Развернуть ветку
Dilara

очень полезно! спасибо за тренажер с задачками — топ 👍

Ответить
Развернуть ветку
Konstantin Grabar

Огонь! Лайк за примеры с API.

Ответить
Развернуть ветку
0 комментариев
Раскрывать всегда