Node express 整合Swagger

似水浮流年發表於2018-07-29

本文記錄express 整合Swagger 的步驟 點選檢視Demo

相關環境

  • express 4.16.0
  • swagger-ui-express 3.0.10
  • swagger-jsdoc 1.10.3

配置

將下面程式碼放到app.js 中,且必須放到var app = express(); 下面一行。我一開始放到底部沒有生效。

// swagger
var swaggerUi = require('swagger-ui-express');
var swaggerJSDoc = require('swagger-jsdoc');

var swaggerDefinition = {
  info: {
    title: 'Node Swagger API',
    version: '1.0.0',
    description: 'Swagger 介面文件',
  },
  host: 'localhost:3000',
  basePath: '/',
};

// options for the swagger docs
var options = {
  // import swaggerDefinitions
  swaggerDefinition: swaggerDefinition,
  // path to the API docs
  apis: ['./routes/*.js'],
};

// initialize swagger-jsdoc
var swaggerSpec = swaggerJSDoc(options);

// serve swagger
app.get('/swagger.json', function(req, res) {
  res.setHeader('Content-Type', 'application/json');
  res.send(swaggerSpec);
});

app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec));
複製程式碼

定義路由介面註釋

/**
 * @swagger
 * definitions:
 *   Puppy:
 *     properties:
 *       name:
 *         type: string
 *       breed:
 *         type: string
 *       age:
 *         type: integer
 *       sex:
 *         type: string
 */
複製程式碼

更多示例參考 Swagger Specification

參考文件

Swagger and NodeJS

相關文章