Package Exports
- openapi2aspida
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (openapi2aspida) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
OpenAPI / Swagger to aspida

Convert OpenAPI 3.0 and Swagger 2.0 definitions into aspida.
Breaking change ⚠️
2021/03/15
Since openapi2aspida >= 0.16.0
, requires TypeSciprt 3.8 or higher for Type-Only Imports.
2020/11/26
Since openapi2aspida >= 0.14.0
, request headers are forced to be optional.
2020/11/14
Since openapi2aspida >= 0.13.0
, optional for aspida only if the 'required' property of OpenAPI is set to false
.
Getting Started
Compatible with yaml/json of OpenAPI3.0/Swagger2.0
$ mkdir petstore-api
$ cd petstore-api
$ npx openapi2aspida -i https://petstore.swagger.io/v2/swagger.json # or ../local-swagger.yaml
# api/$api.ts was built successfully.
$ npm init -y
$ npm install @aspida/axios axios typescript ts-node @types/node
index.ts
import axiosClient from '@aspida/axios'
import api from "./api/$api"
import type { Pet } from './api/@types'
;(async () => {
const client = api(axiosClient())
const petId = 100
const body: Pet = {
id: petId,
name: 'hoge',
photoUrls: [],
status: 'available'
}
await client.pet.$post({ body })
const pet = await client.pet._petId(petId).$get()
console.log(pet)
})()
package.json
{
"scripts": {
"start": "ts-node index.ts"
}
}
$ npm start
# { id: 100, name: 'hoge', photoUrls: [], tags: [], status: 'available' }
Build from config file
Create config file in project root
aspida.config.js
module.exports = {
input: "api", // "input" of aspida is "output" for openapi2aspida
outputEachDir: true, // Generate $api.ts in each endpoint directory
openapi: { inputFile: "https://petstore.swagger.io/v2/swagger.json" }
}
$ npx openapi2aspida
License
openapi2aspida is licensed under a MIT License.