Never Publish Malarkey

    @luma-dev/openapi2aspida
    TypeScript icon, indicating that this package has built-in type declarations

    0.1.0 • Public • Published

    OpenAPI / Swagger to aspida


    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.

    Install

    npm i @luma-dev/openapi2aspida

    DownloadsWeekly Downloads

    2

    Version

    0.1.0

    License

    MIT

    Unpacked Size

    111 kB

    Total Files

    57

    Last publish

    Collaborators

    • lumax