http-partial-response
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
- Yarn
- pnpm
npm install --save @middy/http-partial-response
yarn add @middy/http-partial-response
pnpm add @middy/http-partial-response
Options
filteringKeyName
(string
) (optional): defaults tofields
the querystring key that will be used to filter the response.
Sample usage
import middy from '@middy/core'
import httpPartialResponse from '@middy/http-partial-response'
const lambdaHandler = (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
}
export const handler = middy().use(httpPartialResponse()).handler(lambdaHandler)
const event = {
queryStringParameters: {
fields: 'firstname,lastname'
}
}
handler(event, {}, (_, response) => {
expect(response.body).toEqual({
firstname: 'John',
lastname: 'Doe'
})
})