Skip to content

sebastian-curland/express-version-request

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

express-version-request

view on npm view on npm npm module downloads Dependency Status

What is this?

This npm package provides an ExpressJS middleware that sets the request object with a version property by parsing a request HTTP header.

Usage

Set request version statically

If you wish to employ your own logic in some middleware/configuration and set the request version programmaticaly and not by parsing a specific HTTP header:

const versionRequest = require('express-version-request')

app.use(versionRequest.setVersion('1.2.3'))

Then in later middlewares you will be able to access req.version property and it's value set to 1.2.3.

Set request version by HTTP header

By default, the library will parse the version out of the X-Api-Version HTTP header:

const versionRequest = require('express-version-request')

app.use(versionRequest.setVersionByHeader())

Set request version by custom HTTP header

If you wish to advise the library which HTTP header to parse to extract the version:

const versionRequest = require('express-version-request')

app.use(versionRequest.setVersionByHeader('My-HTTP-Header-Name'))

Set request version by HTTP query parameter

By default, the library will parse the version out of the api-version query parameter:

const versionRequest = require('express-version-request')

app.use(versionRequest.setVersionByQueryParam())

Set request version by custom HTTP query parameter

If you wish to advise the library which query parameter to parse to extract the version:

const versionRequest = require('express-version-request')

app.use(versionRequest.setVersionByQueryParam('myQueryParam'))

setVersionByQueryParam options

The second parameter of setVersionByQueryParam is an options object.

Options

removeQueryParam

Delete version HTTP query parameter after setting the request object with a version property. By default it is set to false.

const versionRequest = require('express-version-request')
const options = {removeQueryParam: true}

app.use(versionRequest.setVersionByQueryParam('myQueryParam', options))

If you define a middleware after versionRequest then you can verify that the version is indeed set:

app.use((req, res, next) => {
    console.log(req.version)
    next()
  })

Installation

yarn add express-version-request

Tests

yarn test

Project linting:

yarn lint

Coverage

yarn test:coverage

Commit

The project uses the commitizen tool for standardizing changelog style commit messages so you should follow it as so:

git add .           # add files to staging
yarn commit      # use the wizard for the commit message

Author

Liran Tal [email protected]

About

versions an incoming request to Express based on header or URL

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%