This package provides an easy and efficient way to generate code for various programming languages from OpenAPI specifications (both OpenAPI 2 and OpenAPI 3 are supported).
- Language-agnostic code generation for various programming languages, including TypeScript, JavaScript, Python, and more
- Generate client libraries for RESTful APIs
- Type-safe code generation
- Supports both OpenAPI 2 (Swagger) and OpenAPI 3
npm install --save-dev oapicodegen
First, import the package in one of your files:
import { Api } from 'oapicodegen';
First of all create context object for future needs:
/* Example data loading:
const openapiJson = await fs.readFile('openapi3.json', 'utf8');
const openapi = JSON.parse(openapiJson);
*/
const api = await Api.load(openapi);
You can get different result depending on the next steps.
const operations = api
.paths
.flatMap((path) => path.operations)
.filter((operation) => operation.method === 'get');
const operations = api
.getPathBySegments(['pets', 'findByStatus'])
.operations; // operations of /pets/findByStatus path
const operations = api
.getStaticSegmentsAtNextLevel(['pets', 'findByStatus'])
.operations; // operations of /pets/findByStatus/* paths
const response = api
.getPathBySegments(['pets', 'findByStatus'])
.operations[0]
.getResponseByStatus(200); // response with status code 200
import { format } from 'prettier';
const code = format('const a = 1;', { parser: 'typescript' });
const schema = api
.getPathBySegments(['pets', 'findByStatus'])
.operations[0]
.responses[0]
.content['application/json']
.schema;
`const PetResponse = z[${schema?.type}]();`
The mission of this project is simple - to help convert an existing OpenAPI 2 or 3 schema in variable form to text.
What this project does NOT do:
- Downloading files
- Importing files
- Exporting files
- Operating on dependencies other than local
- Authentication
- Using with the CLI