Документирование API мобильного приложения
Мобильная команда сдала фичу. Бэкенд поднял новые эндпоинты. А потом приходит вопрос: «А где документация?» — и оказывается, что её нет вообще, или она устарела на три спринта назад. Знакомая ситуация. Именно здесь начинается работа по документированию API.
Что именно документируем
Документация API — это не просто список URL. Для мобильного приложения важно описать:
- Все эндпоинты с методами, заголовками, параметрами и примерами тел запросов/ответов
- Схемы авторизации: Bearer-токен, OAuth 2.0, API Key — с примерами заголовков
- Коды ошибок и их смысл:
401 Unauthorizedvs403 Forbidden— разница важна на клиенте - Пагинацию: cursor-based или offset, какие поля возвращает мета
- Версионирование:
/v1/,/v2/— что изменилось, что deprecated
Как это делается на практике
Для большинства проектов мы используем комбинацию: генерация спецификации OpenAPI 3.x из аннотаций кода (если бэкенд на Laravel — L5-Swagger, на NestJS — декораторы @ApiOperation), а затем рендеринг через Stoplight Elements или Redoc в виде статического сайта или встроенного в dev-портал.
Если API существует, но документации нет совсем — делаем обратный инжиниринг: перехватываем трафик через Charles Proxy или mitmproxy, собираем реальные запросы из мобильного приложения и восстанавливаем структуру. Это медленнее, но иногда единственный вариант для legacy.
Для React Native проектов особенно ценно задокументировать типы прямо в TypeScript-интерфейсах, которые затем синхронизируются с OpenAPI-схемой через openapi-typescript. Это позволяет получить type-safe клиент без ручного написания типов.
Инструменты
| Инструмент | Сценарий |
|---|---|
| Swagger UI / Redoc | Рендеринг OpenAPI-спецификации |
| Stoplight Studio | Визуальный редактор + мок-сервер |
| Postman Collections | Тестирование + шаринг внутри команды |
| Bruno | Альтернатива Postman, файловый формат в git |
| openapi-typescript | Генерация TypeScript-типов из схемы |
Что получает команда в итоге
Разработчик мобильного приложения перестаёт спрашивать бэкенд «а что вернётся если пользователь не авторизован». Тестировщик видит все граничные случаи. QA автоматизирует контрактное тестирование по схеме. PM понимает, что делает каждый вызов.
Срок зависит от размера API: небольшой проект (20-40 эндпоинтов) — 3-5 дней, крупный сервис со сложными схемами — до 2-3 недель с итерациями.







