typespeed-swagger v1.1.7
typespeed-swagger
The Swagger plugin for the TypeSpeed framework.
- NO NEED to add redundant annotations of methods and variables on existing web applications.
- NO NEED to add redundant definitions to any entity classes.
- Simply modify the import path of some decorators, then the application will have a complete and available swagger document page.
- Use advanced reflection (typescript-rtti) to get all the type, no extra markup required.
Install
npm install typespeed-swagger typescript-rtti reflect-metadataHow To Use
First modify the import path of these decorators from typespeed to typespeed-swagger: @getMapping, @postMapping, @requestMapping, @reqBody, @reqQuery, @reqForm, @reqParam.
For example:
import { log, component, getMapping, reqQuery } from "typespeed";Would change to:
import { log, component } from "typespeed";
import { getMapping, reqQuery } from "typespeed-swagger";Second, add swagger middleware to the main.ts entry file, as follows:
import { app, log, autoware, ServerFactory } from "typespeed";
import { swaggerMiddleware } from "typespeed-swagger";
@app
class Main {
@autoware
public server: ServerFactory;
public main() {
swaggerMiddleware(this.server.app, { path: "/docs", "allow-ip": ["127.0.0.1"] }, "./package.json");
this.server.start(8081);
}
}After that, start the application, visit http://localhost:8081/docs, and you can see the swagger page.
Configuration
Typespeed-swagger has three configurations, which are the last two optional parameters of the swaggerMiddleware function:
The
pathproperty of the second parameter is the address configuration of the swagger page, and the default is/docs.The
allow-ipproperty of the second parameter provides IP restrictions for secure access to the swagger page. Only the client IPs in theallow-iparray can access the page normally. Default is["127.0.0.1", "::1"].The third parameter is the
package.jsonfile path of the project. Typespeed-swagger use the package.json file and read its name and version information for swagger page.
Link
TypeSpeed Framework https://www.npmjs.com/package/typespeed
Swagger UI https://swagger.io
typescript-rtti https://www.npmjs.com/package/typescript-rtti
License
- MIT © speedphp