Не генерирует документ swagger - Node JS + swaggerJSDoc - PullRequest
0 голосов
/ 19 июня 2020

Я пытаюсь собрать документацию по чванству для своих Node JS express API. В приложение добавлен следующий код. js:

const options = {
  definition: {
    openapi: '3.0.0', // Specification (optional, defaults to swagger: '2.0')
    info: {
      title: 'Hello World!', // Title (required)
      version: '1.0.0', // Version (required)
    },
  },
  // Path to the API docs
  apis: ['routes/*.js']
};
const swaggerSpec = swaggerJSDoc(options);
// console.log(swaggerSpec)
app.get('/api-docs.json', (req, res) => {
  res.setHeader('Content-Type', 'application/json');
  res.send(swaggerSpec);
});
app.use('/api/docs',express.static('./node_modules/swagger-ui/dist'));

В один из маршрутов приложения добавлена ​​следующая документация:

/**
 * @swagger
 * resourcePath: /api
 * /login:
 *   post:
 *     description: Login to the application
 *     produces:
 *       - application/json
 *     parameters:
 *       - name: username
 *         description: Username to use for login.
 *         in: formData
 *         required: true
 *         type: string
 *       - name: password
 *         description: User's password.
 *         in: formData
 *         required: true
 *         type: string
 *     responses:
 *       200:
 *         description: login
 */

При доступе к http://localhost создается следующий вывод. : 4000 / api-docs. json

{"openapi":"3.0.0","info":{"title":"Hello World!","version":"1.0.0"},"paths":{},"components":{},"tags":[]}

Однако фактическая документация не создается. Мы будем благодарны за любую помощь в исправлении этого.

1 Ответ

0 голосов
/ 05 июля 2020

Обнаружена проблема и ее решение.

Путь к свойству apis должен быть относительным путем от root Изменено apis: ['routes/*.js'] до apis: ["src/routers/*.js"], и это сработало.

...