Skip to main content

A simple web framework for aws lambda

Project description

WellAPI

WellAPI is a simple web framework for work with AWS Lambda and API Gateway. It is designed to be easy to use and flexible, allowing you to create RESTful APIs quickly and efficiently.

Features

  • Simple and intuitive API for defining routes and handling requests
  • Support for middleware functions
  • Automatic request validation and error handling
  • Support for CORS
  • Support for query parameters, path parameters, and request bodies
  • Support for error handling
  • Support for AWS Lambda and API Gateway

Installation

You can install WellAPI using pip:

pip instsll wellapi

Example

from wellapi import WellApi

app = WellApi()

@app.get("/hello")
def hello():
    return {"message": "Hello, World!"}

Local development

You can run your WellAPI application locally using the wellapi command:

wellapi run main:app

Deploy

from wellapi.build.cdk import WellApiCDK


class MyStack(Stack):
    def __init__(self, scope: Construct, id_: str, **kwargs) -> None:
        super().__init__(scope, id_, **kwargs)

        app = WellApiCDK(
            self,
            "WellApiCDK",
            app_srt="main:app",
            handlers_dir="handlers",
        )

CORS

You can enable CORS for your API by setting the cors parameter to True when creating the WellApiCDK instance:

from wellapi.build.cdk import WellApiCDK


class MyStack(Stack):
    def __init__(self, scope: Construct, id_: str, **kwargs) -> None:
        super().__init__(scope, id_, **kwargs)

        app = WellApiCDK(
            self,
            "WellApiCDK",
            app_srt="main:app",
            handlers_dir="handlers",
            cors=True,
        )

Cache

You can enable caching for your API by setting the cache_enable parameter to True when creating the WellApiCDK instance:

from wellapi.build.cdk import WellApiCDK


class MyStack(Stack):
    def __init__(self, scope: Construct, id_: str, **kwargs) -> None:
        super().__init__(scope, id_, **kwargs)

        app = WellApiCDK(
            self,
            "WellApiCDK",
            app_srt="main:app",
            handlers_dir="handlers",
            cache_enable=True,
        )

!!! WARNING !!!

Caching support only GET endpoints

Logging

You can enable logging for your API by setting the log_enable parameter to True when creating the WellApiCDK instance:

from wellapi.build.cdk import WellApiCDK


class MyStack(Stack):
    def __init__(self, scope: Construct, id_: str, **kwargs) -> None:
        super().__init__(scope, id_, **kwargs)

        app = WellApiCDK(
            self,
            "WellApiCDK",
            app_srt="main:app",
            handlers_dir="handlers",
            log_enable=True,
        )

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

wellapi-0.4.0.tar.gz (54.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wellapi-0.4.0-py3-none-any.whl (52.5 kB view details)

Uploaded Python 3

File details

Details for the file wellapi-0.4.0.tar.gz.

File metadata

  • Download URL: wellapi-0.4.0.tar.gz
  • Upload date:
  • Size: 54.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.6.14

File hashes

Hashes for wellapi-0.4.0.tar.gz
Algorithm Hash digest
SHA256 fff5c82c0bde957330d1d9af1e2da9d1b7154dd87a4c7b4bc64966279a72bf82
MD5 2a6bb3e4dc91bfbd36117f1ec22827b2
BLAKE2b-256 02e855a11209744e89174dc1d3e176cb5c8a0f416622ef3187ee458be319f987

See more details on using hashes here.

File details

Details for the file wellapi-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: wellapi-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 52.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.6.14

File hashes

Hashes for wellapi-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4c0e6cee92ffb574dc8786d792ee9f2a59119814d519e0f303c0d0a7ac8b1457
MD5 8e004b3e1cbf0456662d374b2edaf9c1
BLAKE2b-256 eaca1c575b1b7c7078f244ff6fec73137d533d4539b2c817543337f656f79187

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page