【问题标题】:YAMLSemanticError: Implicit map keys need to be on a single line at line 1, column 1: trying to create Swagger DocumentationYAMLSemanticError:隐式映射键需要位于第 1 行第 1 列的单行:尝试创建 Swagger 文档
【发布时间】:2021-11-22 13:49:39
【问题描述】:

这是我第一次实现 Swagger。我需要指导。我正在尝试在我的 REST api 中实现 swagger,我收到此错误

PS D:\node_apps\testpdfgenerate> 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;

我做错了什么?

【问题讨论】:

    标签: mysql node.js rest swagger


    【解决方案1】:

    固定添加的花括号

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

    为像我这样的其他新手解决了这个问题:)

    【讨论】:

      猜你喜欢
      • 2021-10-19
      • 2011-04-03
      • 1970-01-01
      • 2016-02-20
      • 2020-04-20
      • 2021-11-08
      • 2015-12-07
      • 1970-01-01
      • 2020-07-11
      相关资源
      最近更新 更多