0.4.11 • Published 3 months ago

openapi-tool v0.4.11

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months ago

openapi-tool

English | 简体中文

openapi-tool is a tool to generate service file based on openapi.

If you like it, please give me a star. Thanks a lot!

Features

  • Compatible with bath OAS2 and OAS3
  • Support major HTTP Client(axios and umi-request so far)
  • Support generating js or ts file
  • Support type system when generate ts file
  • Plugin system to add global-level functionality

Install

npm install openapi-tool

Example

note: CommonJS usage

In order to gain the TypeScript typings (for intellisense / autocomplete) while using CommonJS imports with require() use the following approach:

const OpenApiTool = require('openapi-tool').default;

PS: Typing .default is merely used to gain the TypeScript typings. Please remove .default when you launch the project, otherwise it will throw an error.

Usage

const OpenApiTool = require('openapi-tool');
const { resolve } = require('path');

const url = 'https://gw.alipayobjects.com/os/antfincdn/M%24jrzTTYJN/oneapi.json';
const outputDir = resolve(__dirname, 'service');

const openApiTool = new OpenApiTool({url});
openApiTool.generateService({
  template: 'axios',
  importText: `const axios = require('axios');`,
  typescript: true,
  outputDir,
});

API

new OpenApiTool(options: Options)

Create a new OpenApiTool instance.

Options:

PropertyDescriptionTypeDefaultrequired
urlThe url of swagger documentstring-either url or data
dataThe json of swagger documentstring-either url or data

generateService(options: ServiceGeneratorOptions): void

Generate service files, the name of file will be the tag's name.

ServiceGeneratorOptions:

PropertyDescriptionTypeDefaultrequired
outputDirOutput directorystring-true
templateHTTP client template which you want to generatestring'umi-request'false
importTextImport statementsstringdefault statementsfalse
typescriptGenerate ts file and typingsbooleanfalsefalse
formatFormat content of OpenApi(openapi: OpenApi) => OpenApi-false

getOpenApi(): Promise<OpenApi>

Get OpenApi that transformed from OAS2/OAS3.

Plugin

openapi-tool have a flexible plugin system which can add global-level functionality.

Using Plugin

Use plugins by calling the OpenApiTool.use() global method. This has to be done before you start your app by calling new OpenApiTool():

// calls `MyPlugin.install(OpenApiTool)`
OpenApiTool.use(MyPlugin)

new OpenApiTool({
  //... options
})

You can optionally pass in some options:

OpenApiTool.use(MyPlugin, { someOption: true })

Writing a plugin

A plugin should be a method. The method will be called with the OpenApiTool constructor as the first argument, along with possible options:

const logPlugin = (OpenApiTool, option) => {
  OpenApiTool.prototype.log = async function() {
    const openapi = await this.getOpenApi();
    console.log(`the length of apis: ${openapi.apis.length}`);
    console.log('option', option);
  }
}

then you can use it like this:

const openApiTool = new OpenApiTool({
  //... options
});
openApiTool.log();

License

MIT

0.4.11

3 months ago

0.4.9

1 year ago

0.4.8

1 year ago

0.4.10

1 year ago

0.4.7

1 year ago

0.4.6

2 years ago

0.4.5

2 years ago

0.4.4

2 years ago

0.4.3

2 years ago

0.4.2

2 years ago

0.4.1

2 years ago

0.3.6

3 years ago

0.3.5

3 years ago

0.3.4

3 years ago

0.3.2

3 years ago

0.3.1

3 years ago

0.3.3

3 years ago

0.2.7

3 years ago

0.2.6

3 years ago

0.2.1

3 years ago

0.2.3

3 years ago

0.2.5

3 years ago

0.2.4

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.0

3 years ago