Convert OpenAPI 3.0 and Swagger 2.0 definitions into aspida.
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/nodeindex.ts
importaxiosClientfrom'@aspida/axios';importapifrom'./api/$api';importtype{Pet}from'./api/@types';(async()=>{constclient=api(axiosClient());constpetId=100;constbody: Pet={id: petId,name: 'hoge',photoUrls: [],status: 'available',};awaitclient.pet.$post({ body });constpet=awaitclient.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' }Create config file in project root
aspida.config.js
module.exports={input: 'api',// "input" of aspida is "output" for openapi2aspidaoutputEachDir: true,// Generate $api.ts in each endpoint directoryopenapi: {inputFile: 'https://petstore.swagger.io/v2/swagger.json'},};$ npx openapi2aspidapath to an OpenAPI spec file for input
can change aspida output directory
path to an aspida config file
displays version of openapi2aspida
npx openapi2aspida -i=openApi/sample.yaml -o=lib/api/sampleopenapi2aspida is licensed under a MIT License.