TS generator for swagger spec
npm install @devexperts/swagger-codegen-ts
fetch, Axios or any other libraryfp-ts and io-ts libraries> The examples below refer to the Pet Store OpenAPI 3.0 schema.
After running the codegen, interacting with a REST API may be as simple as this:
``typescript
import { petController as createPetController } from "./src/generated/petstore.json/paths/PetController";
import { Pet } from "./src/generated/petstore.json/components/schemas/Pet";
// Creating a controller, see the "HTTP Clients" wiki page for more details
const petController = createPetController({ httpClient: fetchHttpClient });
// The returned object is guaranteed to be a valid Pet`
const createdPet: Promise
body: {
// The parameters are statically typed, IntelliSense works, too
name: "Spotty",
photoUrls: [],
},
});
More usage scenarios are supported - check the usage page for more detail.
1. Make sure the peer dependencies are installed, then install the codegen itself:
``
yarn add typescript fp-ts io-ts io-ts-types
yarn add -D @devexperts/swagger-codegen-ts
2. Create a console script that would invoke the generate function, passing the options such as path to the schema file and the output directory.
See the Generators page for the API reference, and examples/generate for sample scripts.
3. In most cases, you might want to include the code generation step into the build and local launch scripts. Example:
`diff
/ package.json /
"scripts": {
+ "generate:api": "ts-node scripts/generate-api.ts",
- "start": "react-scripts start",
+ "start": "yarn generate:api && react-scripts start",
- "build": "react-scripts build"
+ "build": "yarn generate:api && react-scripts build"
}
``
* Feel free to file bugs and feature requests in GitHub issues.
* Pull requests are welcome - please use Conventional Commits.
Please read the Contributors Guide for more information.