@middy/http-partial-response

Http partial response middleware for the middy framework

Stats

StarsIssuesVersionUpdatedCreatedSize
@middy/http-partial-response
2,383192.5.1a month ago3 years agoMinified + gzip package size for @middy/http-partial-response in KB

Readme

Middy http-partial-response middleware

Middy logo

HTTP partial response middleware for the middy framework, the stylish Node.js middleware engine for AWS Lambda

Filtering the data returned in an object or JSON stringified response has never been so easy. Add the httpPartialResponse middleware to your middleware chain, specify a custom filteringKeyName if you want to and that's it. Any consumer of your API will be able to filter your JSON response by adding a querystring key with the fields to filter such as fields=firstname,lastname.

This middleware is based on the awesome json-mask package written by Yuriy Nemtsov

Install

To install this middleware you can use NPM:

npm install --save @middy/http-partial-response

Options

This middleware does not have any option

Sample usage

import middy from '@middy/core'
import httpPartialResponse from '@middy/http-partial-response'

const handler = middy((event, context) => {
  const response = {
    statusCode: 200,
    body: {
      firstname: 'John',
      lastname: 'Doe',
      gender: 'male',
      age: 30,
      address: {
        street: 'Avenue des Champs-Élysées',
        city: 'Paris'
      }
    }
  }

  return response
})

handler.use(httpPartialResponse())

const event = {
  queryStringParameters: {
    fields: 'firstname,lastname'
  }
}

handler(event, {}, (_, response) => {
  expect(response.body).toEqual({
    firstname: 'John',
    lastname: 'Doe'
  })
})

Middy documentation and examples

For more documentation and examples, refers to the main Middy monorepo on GitHub or Middy official website.

Contributing

Everyone is very welcome to contribute to this repository. Feel free to raise issues or to submit Pull Requests.

License

Licensed under MIT License. Copyright (c) 2017-2021 Luciano Mammino, will Farrell, and the Middy team.

FOSSA Status

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.