node-swagger-middleware

[![codecov](https://codecov.io/gh/davidNHK/node-swagger-middleware/branch/development/graph/badge.svg)](https://codecov.io/gh/davidNHK/node-swagger-middleware) [![Build Status](https://travis-ci.org/davidNHK/node-swagger-middleware.svg?branch=development)

Usage no npm install needed!

<script type="module">
  import nodeSwaggerMiddleware from 'https://cdn.skypack.dev/node-swagger-middleware';
</script>

README

node-swagger-middleware

codecov Build Status npm version Conventional Commits

Project on top of sway and swagger-combine to provide middleware for express request/response validate

Installation

yarn add node-swagger-middleware

Example Usage

Express Example App

const express = require("express")
const swaggerCombine = require("swagger-combine")
const {
  createExpressMiddleware,
  ValidationError
} = require("node-swagger-middleware")

createExpressApp = async () => {
  const app = express()
  const swaggerFile = await swaggerCombine(`${__dirname}/swagger/index.yml`)
  app.use(express.json())
  app.use(await createExpressMiddleware(swaggerFile))
  app.use((err, req, res, next) => {
    if (err instanceof ValidationError) {
      res.status(400)
    } else {
      res.status(500)
    }
    res.send({
      err
    })
  })
  return app
}

TODO

Support default value, type casing on request parameters