# API CodeGen CLI утилита для генерации TypeScript API клиента из OpenAPI спецификации. ## Установка ```bash bun install ``` ## Использование ```bash api-codegen -u -i -o [-n ] ``` **Аргументы:** - `-u, --url ` - Базовый URL API - `-i, --input ` - Путь к OpenAPI файлу (локальный или URL) - `-o, --output ` - Директория для сохранения файлов - `-n, --name ` - Имя сгенерированного файла (опционально) **Примеры:** ```bash # Локальный файл api-codegen -u https://api.example.com -i ./openapi.json -o ./src/api # URL на спецификацию api-codegen -u https://api.example.com -i https://petstore.swagger.io/v2/swagger.json -o ./src/api # С кастомным именем файла api-codegen -u https://api.example.com -i ./openapi.json -o ./src/api -n MyApiClient ``` ## Пример использования ```typescript import { Api, HttpClient } from './src/api/Api'; const httpClient = new HttpClient(); httpClient.setSecurityData({ token: 'jwt-token' }); const api = new Api(httpClient); // GET запрос const user = await api.auth.getProfile(); // POST запрос const result = await api.auth.login({ email, password }); // React + SWR function Profile() { const { data } = useSWR('/auth/me', () => api.auth.getProfile()); return
{data?.email}
; } ``` ## Разработка ### Сборка ```bash bun run build ``` ### Тестирование Проект использует комплексную систему тестирования с максимальным покрытием (~72 тестовых кейса). **Запуск всех тестов:** ```bash bun test ``` **Только юнит тесты:** ```bash bun test:unit ``` **Только интеграционные тесты:** ```bash bun test:integration ``` **Watch режим:** ```bash bun test:watch ``` **С coverage:** ```bash bun test:coverage ``` Подробная документация по тестированию доступна в [`tests/README.md`](tests/README.md). ### Структура тестов - **Юнит тесты** - CLI, генератор, утилиты, валидация - **Интеграционные тесты** - E2E генерация, сгенерированный клиент - **Тестовые фикстуры** - 7 OpenAPI спецификаций для различных сценариев - **Mock сервер** - для тестирования HTTP запросов **Покрываемые сценарии:** - ✅ CLI команды и обработка ошибок - ✅ Генерация TypeScript кода - ✅ Компиляция сгенерированного кода - ✅ HTTP запросы с mock сервером - ✅ Аутентификация (Bearer tokens) - ✅ Edge cases (Unicode, большие спецификации) ## Лицензия MIT