@cmsgov/request-version
v1.0.1
Published
CMS QPP specific express middleware to get version from Accept header and put it on the request object
Downloads
232
Maintainers
Readme
qpp-shared-api-versioning-node
This package provides ExpressJS middleware that parses incoming HTTP headers to determine the version of the API to be consumed and sets a apiVersion
property on the req
object.
The library will parse the version from the Accept header, expecting the following format: Accept: application/vnd.cms.gov.v1+json
Requirements
node v6.9.1 or higher
Usage
Set request version by 'Accept' header
const requestVersion = require('@cmsgov/request-version');
app.use(requestVersion.setVersion());
Options
const options = {
defaultVersion: 1,
supportedVersions: [1, 2]
};
You can pass in a defaultVersion
value on options to set the default version if no Accept header is included in the request:
app.use(requestVersion.setVersion({ defaultVersion: 1 }));
If you pass in a supportedVersions
array on options the requested version does not exist in the array, then the defualt version will be set.
Downstream
If you define a middleware after requestVersion then you can verify that the version is indeed set:
app.use((req, res, next) => {
console.log(req.apiVersion)
next()
});
Installation
npm install @cmsgov/request-version
Tests
npm test
Project linting:
npm run lint
Coverage
npm run test:coverage
Author
Branon Barrett [email protected]