feat: инициализация API CodeGen
CLI утилита для генерации TypeScript API клиента из OpenAPI спецификации. - Поддержка локальных файлов и URL для спецификаций - Кастомизация имени выходного файла через флаг --name - Генерация типизированного клиента с SWR хуками - Минимальный вывод логов для лучшего UX
This commit is contained in:
61
README.md
Normal file
61
README.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# API CodeGen
|
||||
|
||||
CLI утилита для генерации TypeScript API клиента из OpenAPI спецификации.
|
||||
|
||||
## Установка
|
||||
|
||||
```bash
|
||||
bun install
|
||||
```
|
||||
|
||||
## Использование
|
||||
|
||||
```bash
|
||||
api-codegen -u <URL> -i <INPUT> -o <OUTPUT> [-n <NAME>]
|
||||
```
|
||||
|
||||
**Аргументы:**
|
||||
- `-u, --url <url>` - Базовый URL API
|
||||
- `-i, --input <path>` - Путь к OpenAPI файлу (локальный или URL)
|
||||
- `-o, --output <path>` - Директория для сохранения файлов
|
||||
- `-n, --name <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 <div>{data?.email}</div>;
|
||||
}
|
||||
```
|
||||
|
||||
## Лицензия
|
||||
|
||||
MIT
|
||||
Reference in New Issue
Block a user