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)