Request/Response wrapper for AWS Lambda with API Gateway
Project description
AWS Lambda Requests Wrapper
Request/Response wrapper for AWS Lambda with API Gateway.
Install
Install and update using pip.
$ pip install -U aws-lambda-requests-wrapper
Example
Converts the lambda_handler syntax:
import json
def lambda_handler(event, context):
...
response = {"key": "value"}
return {
"statusCode": 200,
"headers": {
"Content-Type": "application/json"
},
"body": json.dumps(response)
}
into this:
import json
from aws_lambda_requests_wrapper.lambda_handler import lambda_request_wrapper
from aws_lambda_requests_wrapper.models import Request
from aws_lambda_requests_wrapper.models import Response
@lambda_request_wrapper()
def lambda_handler(request: Request) -> Response:
...
response = {"key": "value"}
return Response(body=json.dumps(response))
or return a Pydantic model directly:
from pydantic import BaseModel
from aws_lambda_requests_wrapper.lambda_handler import lambda_request_wrapper
from aws_lambda_requests_wrapper.models import Request
class Model(BaseModel):
model_id: int
@lambda_request_wrapper()
def get_pydantic_model(request: Request) -> Model:
return Model(model_id=1)
Contributing
Contributions are welcome via pull requests.
First time setup
$ git clone git@github.com:DeveloperRSquared/aws-lambda-requests-wrapper.git
$ cd aws-lambda-requests-wrapper
$ poetry install
$ source .venv/bin/activate
Tools including black, mypy etc. will run automatically if you install pre-commit using the instructions below
$ pre-commit install
$ pre-commit run --all-files
Running tests
$ poetry run pytest
Links
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file aws-lambda-requests-wrapper-0.2.3.tar.gz
.
File metadata
- Download URL: aws-lambda-requests-wrapper-0.2.3.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.10.2 Linux/5.11.0-1027-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 72e26ca658ab53dad1ff49fabfd947177b757e4c2d87bd5513a3cfd497fde288 |
|
MD5 | 8c35efb8239721ef3299a8bdbeb808f5 |
|
BLAKE2b-256 | 5de41b3fbb3e84b8932775034a3d65d7d1dd6344c2d093c7d90f11bc53165eac |
File details
Details for the file aws_lambda_requests_wrapper-0.2.3-py3-none-any.whl
.
File metadata
- Download URL: aws_lambda_requests_wrapper-0.2.3-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.10.2 Linux/5.11.0-1027-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3aa401bed727129edbf9fcfbd5edb487f33784a4da9e4fb12664c27c93bb67f9 |
|
MD5 | 1b15b788a4a3d6d5b04256ecd9fbff49 |
|
BLAKE2b-256 | 881c9925ddeee1bfb731420e0cb6122deb0a1122f3af7df09aef0cec4794b5b3 |