Felhasználói eszközök

Eszközök a webhelyen


oktatas:web:back-end_framework:express:swagger:swagger_jsdoc

< Swagger

Express - Swagger JsDoc

Projekt

mkdri app01
cd app01
npm init -y

Függőségek:

pnpm install --save express nodemon morgan
pnpm install --save-dev swagger-jsdoc swagger-ui-express

Script:

package.json
{
  "scripts": {
    "start":"nodemon app --watch app"
  }
}

Szerver

app/index.js
const express = require('express')
const app = new express()
const morgan = require('morgan')
const router = require('./routes/api')
 
const PORT = process.env.PORT || 8000;
 
app.use(express.json())
app.use(morgan('tiny'))
app.use(router)
 
app.listen(PORT, () => {
    console.log('Server is running on port: ', PORT)
})

Az index.js kiegészítése

app/index.js
const express = require('express')
const app = new express()
const morgan = require('morgan')
const router = require('./routes/api')
const swaggerUi = require('swagger-ui-express')
 
const swaggerOptions = {
    swaggerDefinition: {
        info: {
            title: 'Teszt API',
            version: '0.0.1'
        }
    },
    apis: ['app/routes/api.js']   
}
 
const swaggerJsDoc = require('swagger-jsdoc');
const swaggerDocument = swaggerJsDoc(swaggerOptions)
 
const PORT = process.env.PORT || 8000;
 
app.use('/swagger', swaggerUi.serve)
app.get('/swagger', swaggerUi.setup(swaggerDocument))
 
app.use(express.json())
app.use(morgan('tiny'))
app.use(router)
 
app.listen(PORT, () => {
    console.log('Server is running on port: ', PORT)
})

Routing

app/routes/api.js
const router = require('express').Router();
 
const EmployeeController = require('../controllers/employeecontroller');
 
/**
 * @swagger
 * /ping:
 *  get:
 *    description: Elérhetőség viszgálata
 *    responses:
 *      200:
 *        description: Success
 * 
 */
router.get('/ping', async (req, res) => {    
    res.send({message: 'Helló'})
})
 
module.exports = router

Nézzük meg az eredményt:

Post kérés

Hozzunk létre egy /emp útvonalat POST metódussal.

app/routes/api.js
const router = require('express').Router();
 
const swaggerUi = require('swagger-ui-express')
const swaggerJsDoc = require('swagger-jsdoc');
 
const swaggerOptions = {
    swaggerDefinition: {
        info: {
            title: 'Teszt API',
            version: '0.0.1'
        }
    },
    apis: ['app/routes/api.js']
}
 
const swaggerDocument = swaggerJsDoc(swaggerOptions)
console.log(swaggerDocument)
 
router.use('/api-docs', swaggerUi.serve)
router.get('/api-docs', swaggerUi.setup(swaggerDocument))
 
/**
 * @swagger
 * /ping:
 *  get:
 *    description: Elérhetőség viszgálata
 *    responses:
 *      200:
 *        description: Success
 * 
 */
router.get('/ping', async (req, res) => {
    res.send({message: 'Helló'})
})
 
/**
 * @swagger
 * /emp:
 *  post:
 *    description: Create employee
 *    parameters:
 *    - name: name
 *      description: the employee's name
 *      in: formData
 *      required: true
 *      type: string
 *    responses:
 *      201:
 *        description: Created
 * 
 */
router.post('/emp', async (req, res) => {
    res.status(201).send()
})
 
module.exports = router

Nézzük meg az eredményt:

oktatas/web/back-end_framework/express/swagger/swagger_jsdoc.txt · Utolsó módosítás: 2024/04/01 01:56 szerkesztette: admin