DEV Community

Bipon Biswas
Bipon Biswas

Posted on

Connect swagger in NodeJS server

Objective: In this article, you will know how to Create NodeJS server, Connect swagger

Pre-requisite Prior to completing this article, you should have already installed all pre-requisite tooling including: Visual Studio Code, Node Package Manager (NPM), Node.

First step: Init for project starting

 npm init -y 
Enter fullscreen mode Exit fullscreen mode

Then install for other plugin

 npm i express swagger-ui-express yamljs 
Enter fullscreen mode Exit fullscreen mode

Also install for Dev dependency

 npm i -D nodemon 
Enter fullscreen mode Exit fullscreen mode

Configure package.json file

 "scripts": { "start": "node index.js", "dev": "nodemon index.js" }, 
Enter fullscreen mode Exit fullscreen mode

Create a index.js file and Import necessary plugin which already installed.

 const express = require('express') const swaggerUI = require('swagger-ui-express') const YAML = require('yamljs') const swaggerDoc = YAML.load('./swagger.yaml') 
Enter fullscreen mode Exit fullscreen mode

Create express server and config few thing into index.js file

 //express app const app = express() app.use(express.json()) app.use('/docs', swaggerUI.serve, swaggerUI.setup(swaggerDoc)) app.get('/health', (_req, res) => { res.status(200).json({ health: 'Ok' }) }) app.listen(4000, ()=> { console.log('Server is listening on port 4000') } ) 
Enter fullscreen mode Exit fullscreen mode

Create swagger.yaml file. Where insert this basic file.

 openapi: 3.0.0 info: version: 1.0.0 title: Testing Open Api Spec description: > I am learning Open API Specification. This is industry standard specification technique for any web service termsOfService: https://example.com/terms contact: name: Bipon Biswas url: https://example.com email: support@gmail.com license: name: Apache 2.0 url: http://apache.com servers: - url: http://localhost:4000/api/v1 description: dev server - url: http://example.com/api/v1 description: prod server paths: /health: get: tags: [Health] description: this endpoint will test the health of the api responses: '200': description: it will return a success message content: application/json: schema: type: object properties: message: type: string example: ok '500': description: The Server is down content: application/json: schema: type: object properties: message: type: string example: server is down 
Enter fullscreen mode Exit fullscreen mode

Basic Swagger file

Now run the project

 npm run dev 
Enter fullscreen mode Exit fullscreen mode

Running Server

Now hit the URL into browser http://localhost:4000/health

Helath api

Also hit the URL http://localhost:4000/docs/

Swagger Docs

Reference

Top comments (0)