oktatas:web:back-end_framework:express:swagger:swagger_jsdoc
Ez a dokumentum egy előző változata!
Tartalomjegyzék
Express - Swagger JsDoc
- Szerző: Sallai András
- Copyright © 2023, Sallai András
- Szerkesztve: 2024
- Web: https://szit.hu
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:
Read művelet
- swagger.json
{ "swagger": "2.0", "basePath": "/api", "paths": { "/employees": { "get": { "description": "Dolgozók lekérése", "responses": { "200": { "description": "Siker" } } } } } }
oktatas/web/back-end_framework/express/swagger/swagger_jsdoc.1711929371.txt.gz · Utolsó módosítás: 2024/04/01 01:56 szerkesztette: admin