LambdaServerlessRequest
General
LambdaServerlessRequest is an easy way to make requests to a Lambda serverless function instead of having to use API Gateway. LambdaServerlessRequest was heavily inspired by axios, and although there is not complete feature parity, and there are some interface changes, coming from axios to LambdaServerlessRequest will feel very natural.
Installation
$ npm i lambdaserverlessrequest
Examples
const serverlessRequest = ; const request = serverlessRequest; try const result = await ); console; catch e console; try const result = await ); console; catch e console;
Instance Methods
- lambdaServerlessRequest#request(config)
- lambdaServerlessRequest#get(url[, config])
- lambdaServerlessRequest#delete(url[, config])
- lambdaServerlessRequest#head(url[, config])
- lambdaServerlessRequest#options(url[, config])
- lambdaServerlessRequest#post(url[, data[, config]])
- lambdaServerlessRequest#put(url[, data[, config]])
- lambdaServerlessRequest#patch(url[, data[, config]])
- lambdaServerlessRequest#create(config)
Request Config
// `url` is the server URL that will be used for the request url: '/user' // `method` is the request method to be used when making the request method: 'get' // default // `functionName` is the name of the Lambda function you wish to run for this request functionName: 'MyLambdaFunction1' // `headers` are custom headers to be sent headers: 'X-Requested-With': 'XMLHttpRequest' // `params` are the URL parameters to be sent with the request // Must be a plain object params: ID: 12345 // `data` is the data to be sent as the request body // Only applicable for request methods 'PUT', 'POST', and 'PATCH' // Must be of one of the following types: // - string, plain object data: firstName: 'Steve' // `responseType` indicates the type of data that the server will respond with // options are: 'arraybuffer', 'json' responseType: 'json' // default // `validateStatus` defines whether to resolve or reject the promise for a given // HTTP response status code. If `validateStatus` returns `true` (or is set to `null` // or `undefined`), the promise will be resolved; otherwise, the promise will be // rejected. { return status >= 200 && status < 300; // default }
Response Schema
// `data` is the response that was provided by the server data: {} // `status` is the HTTP status code from the server response status: 200 // `headers` the headers that the server responded with // All header names are lower cased headers: {}
Major Differences Between LambdaServerlessRequest and axios
General
- Currently query parameters attached to the
url
won't be recognized - Browser not supported
- Requires Node.js version 8 or higher
- We have currently only tested using
async
/await
syntax, most functionality should work with promises, but this has not been tested at this point
Instance Methods
Removed/Not Present:
getUri
all
spread
Request Config
Added:
functionName
lambda
Changed:
params
must be a plain object, URLSearchParams is not supportedbody
only accepts String or plain Object as typesresponseType
only accepts json and arraybuffer
Removed/Not Present:
baseURL
transformRequest
transformResponse
paramsSerializer
timeout
withCredentials
adapter
auth
responseEncoding
xsrfCookieName
xsrfHeaderName
onUploadProgress
onDownloadProgress
maxContentLength
maxRedirects
socketPath
httpAgent
httpsAgent
proxy
cancelToken
Response Config
Removed/Not Present:
statusText
config
request