Files
api-codegen/README.md
S.Gromov 961c7f0ec1 fix: ослаблена валидация content-type при загрузке спецификации по URL
- убрана строгая проверка content-type (ломала GitHub raw и другие серверы)
- вместо неё парсинг JSON с понятной ошибкой при невалидном ответе
- обновлён README: только npx, добавлен флаг --swr
- версия 1.0.7
2026-04-01 19:21:34 +03:00

81 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# @gromlab/api-codegen
CLI утилита для генерации TypeScript API клиента из OpenAPI спецификации.
## Использование
```bash
npx @gromlab/api-codegen -i <INPUT> -o <OUTPUT> [-n <NAME>] [--swr]
```
**Аргументы:**
- `-i, --input <path>` - Путь к OpenAPI файлу (локальный файл или URL)
- `-o, --output <path>` - Директория для сохранения файлов
- `-n, --name <name>` - Имя сгенерированного файла (опционально, по умолчанию из `spec.info.title`)
- `--swr` - Генерировать SWR хуки для React
**Примеры:**
```bash
# Локальный файл
npx @gromlab/api-codegen -i ./openapi.json -o ./src/api
# URL на спецификацию
npx @gromlab/api-codegen -i https://httpbin.org/spec.json -o ./src/api
# С кастомным именем файла
npx @gromlab/api-codegen -i ./openapi.json -o ./src/api -n MyApi
# С генерацией SWR хуков
npx @gromlab/api-codegen -i ./openapi.json -o ./src/api --swr
```
## Пример использования сгенерированного кода
```typescript
import { Api, HttpClient } from './src/api/MyApi';
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 });
```
## Разработка
### Сборка
```bash
bun run build
```
### Тестирование
```bash
# Все тесты
bun test
# Юнит тесты
bun run test:unit
# Интеграционные тесты
bun run test:integration
# Watch режим
bun run test:watch
# С coverage
bun run test:coverage
```
Подробная документация по тестированию в [`tests/README.md`](tests/README.md).
## Лицензия
MIT