YAMLSemanticError: Неявные ключи карты должны быть в одной строке в строке 1, столбец 1: попытка создать документацию Swagger

#mysql #node.js #rest #swagger

Вопрос:

Это мой первый раз, когда я демонстрирую Чванство. Мне нужно руководство. Я пытаюсь реализовать swagger в своем REST api, я получаю эту ошибку

 PS D:node_appstestpdfgenerategt; node index.js Not all input has been taken into account at your final specification. Here's the report:    YAMLSemanticError: Implicit map keys need to be on a single line at line 1, column 1:  /api/v1/listallstaff/:email ^^^^^^^^^^^^^^^^^^^^^^^^^^^…  App running on Port: 7000  

Остальной маршрут работает нормально, но, реализуя его в Swagger, Чтобы создать документацию, я получаю эту ошибку выше

Полный код REST api выглядит следующим образом.

 var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var mysql = require('mysql'); const swaggerJSDoc = require('swagger-jsdoc');  const swaggerUI = require('swagger-ui-express');    var port = process.env.PORT || 7000;  //evade cors  app.use(function (req, res, next) {  res.setHeader('Access-Control-Allow-Origin', '*');  res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');  res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');  res.setHeader('Access-Control-Allow-Credentials', true);  next();  });   app.use(bodyParser.json()); app.use(bodyParser.urlencoded({  extended:true }));   //Swagger Configuration  const swaggerOptions = {   swaggerDefinition: {   info: {   title:'Employee API',   version:'1.0.0'   }   },   apis:['index.js'],  }  const swaggerDocs = swaggerJSDoc(swaggerOptions);  app.use('/api-docs',swaggerUI.serve,swaggerUI.setup(swaggerDocs));   app.get('/api/',function(req , res){  return res.send({error: false,message: 'Pdf Generator example'}) });   var dbConn = mysql.createPool({  host: 'localhost',  user: 'root',  password: '',  database: 'fakeppldbpdf' });  module.exports = dbConn;  /**   * @swagger   * /api/v1/listallstaff:   * get:   * description: Get all Employee   * responses:   * 200:   * description: Success   *   */   app.get('/api/v1/listallstaff',function(req,res){  dbConn.query('SELECT * FROM sobreppltable',function(error, results, fields){  if(error) throw error;  return res.send({ error: false, data: results, message: 'users list' });  }) })  /**   * @swagger   * /api/v1/listallstaff/:email  * get:   * description: Get all Employee by Email  * responses:   * 200:   * description: Success   *   */   app.get('/api/v1/listallstaff/:email',function(req,res){  let email = req.params.email;  dbConn.query('SELECT * FROM sobreppltable WHERE email =?', email,function(error, results, fields){  if(error) throw error;  return res.send({ error: false, data: results[0], message: 'users list' });  }) })    app.listen(port,function(){  console.log('App running on Port: ' port); });  module.exports = app;  

Что я делаю неправильно?

Ответ №1:

Исправлены добавленные фигурные скобки

 /**   * @swagger   * /api/v1/listallstaff/{email}:  * get:   * description: Get all Employee by Email  * responses:   * 200:   * description: Success   *   */   

Решил это просто для других новичков, таких как я 🙂