@wrk-t/swagger-to-axios
v0.1.0
Published
Generate fully-typed Axios service classes from OpenAPI v3 documents.
Maintainers
Readme
@wrk-t/swagger-to-axios
Generate fully-typed Axios service classes from OpenAPI v3 documents.
Downloads OpenAPI specs from running backends, sanitizes them, generates TypeScript
type definitions via openapi-typescript, and produces Axios service classes
grouped by API tag.
Usage
1. Create a swagger config file
// swagger/swagger.config.json
{
"backends": [
{
"name": "main",
"url": "http://localhost:3001",
"swaggerPath": "/openapi/json",
"swaggerFileName": "main.json"
}
]
}2. Run the generator
swagger-to-axios --root-dir=./swagger/ --out-dir=./src/generated/ --types-dir=types --services-dir=servicesThis will:
- Download swagger docs from each backend
- Generate
types/main.d.tswith all API types - Generate
services/main/AuthService.ts,services/main/UsersService.ts, etc. - Copy helper files (
Response.ts,Request.ts,RequestConfig.ts) tohelpers/
3. Use the generated services
import { authService } from "./generated/services/main/AuthService";
const { response } = useCustomSWR(authService.login, {
body: { email: "[email protected]", password: "secret" },
});CLI Options
| Option | Required | Description |
|--------|----------|-------------|
| --root-dir | Yes | Directory containing swagger JSON files |
| --out-dir | Yes | Output directory for generated code |
| --types-dir | Yes | Subdirectory for type definitions (appended to --out-dir) |
| --services-dir | Yes | Subdirectory for service classes (appended to --out-dir) |
License
MIT
