Logo

dev-resources.site

for different kinds of informations.

Connect swagger in NodeJS server

Published at
7/9/2023
Categories
node
server
swagger
Author
Bipon Biswas
Categories
3 categories in total
node
open
server
open
swagger
open
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


Then install for other plugin



npm i express swagger-ui-express yamljs


Also install for Dev dependency



npm i -D nodemon


Configure package.json file



  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js"
  },


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')


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')
} )


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: [email protected]
  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



Basic Swagger file

Now run the project



npm run dev


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

Featured ones: