-
Notifications
You must be signed in to change notification settings - Fork 5
Description
项目地址: https://github.com/swagger-api/swagger-node
官方文档: https://github.com/swagger-api/swagger-node/tree/master/docs
非常重要的官方文档(如: default.yaml的配置)
https://github.com/apigee-127/swagger-node-runner/releases/tag/v0.6.0
必须要配置_swagger_params_parser
不然连req.body都取不到.
npm i -g swagger
swagger project create hello-world
swagger project start
swagger project edit
但是这个swagger project edit打开的界面特别LOW且buggy, 我是直接到这里去编辑yaml文件: http://editor.swagger.io
测试: http://127.0.0.1:10010/hello?name=Scott
内置的swagger-express-mw还是0.1.0版本, editor界面十分之丑陋.
可以将其升级到swagger-express-mw到0.7.0
:
详见: https://github.com/swagger-api/swagger-node/issues/551
0.7.0不再自带swagger-tools需要单独安装
npm i swagger-tools
在app.js中
const SwaggerUi = require("swagger-tools/middleware/swagger-ui");
swaggerExpress.register(app);
let defaultOptions = {
apiDocs: "/xxxxx/api-docs",
swaggerUi: "/xxxxx/docs"
};
if (isDev) {
app.use(SwaggerUi(swaggerExpress.runner.swagger, defaultOptions));
let swaggerUiURL = `http://localhost:${port}${defaultOptions.swaggerUi}`;
logger.info(`Swagger UI is available at:\n${swaggerUiURL}`);
}
OpenAPI specification(v2 / v3)
https://swagger.io/resources/open-api/
See swagger and OpenAPI in general #167
swagger project edit会打开chrome browser在线编辑yaml文件, 这个文件和项目中的api/swagger/swagger.yaml
是同步变化的.
x-swagger-router-controller
指定使用api/controllers/
下的哪个文件处理请求
operationId
指定应该调用controller中的哪个方法