Skip to main content

Expose your functions as HTTP endpoints.

Project description

dploy-kickstart

maintained workflow codecov

Expose your Python functions via an HTTP API.

Installation

pip install dploy_kickstart

When installed it provides a kickstart executable. Have a look at the help functionality: kickstart --help.

Usage

dploy_kickstart is a helper utility that can expose your Python functions as HTTP endpoints. Based on comment annotations it wraps your chosen functions to be served as API endpoints.

Let's say you have a script.py with @dploy comment annotations:

# @dploy endpoint echo
def echo_func(payload):
    return payload

Serve this function with:

kickstart serve -e script.py

Let's try to call the endpoint via curl.

$ curl -d '{"foo":"bar"}' -H "Content-Type: application/json" -X POST http://localhost:8080/echo/

{"foo":"bar"}

Annotations

Following annotation options are currently available.

  • # @dploy endpoint {endpoint_path}
    Will expose the annotated function on path {endpoint_path} with trailing slash (and redirect without trailing slash).
  • # @dploy response_mime_type {mimetype}
    Specify response mime type, will wrap function response accordingly. default: application/json
    available: application/json
  • # @dploy request_content_type {content_type}
    Specify allowed request content type.
    default: application/json available: application/json
  • # @dploy request_method {method}
    Specify allowed request method.
    default: post
    available: any method supported by Flask
  • # @dploy json_to_kwargs
    Will map json payload's keys to function kwargs if supplied.

Endpoint utilities

Following paths are generated automatically:

  • GET /healthz: that always returns a 200
  • GET /openapi.yaml: autogenerated OpenAPI Spec (WIP)

Current dependency tree

Aim is to keep this as small as possible to not clutter the user space.

$ poetry show --no-dev --tree

apispec 3.3.0 A pluggable API specification generator. Currently supports the OpenAPI Specification (f.k.a. the Swagger specification).
click 7.1.2 Composable command line interface toolkit
flask 1.1.2 A simple framework for building complex web applications.
├── click >=5.1
├── itsdangerous >=0.24
├── jinja2 >=2.10.1
│   └── markupsafe >=0.23 
└── werkzeug >=0.15
paste 3.4.0 Tools for using a Web Server Gateway Interface stack
└── six >=1.4.0
waitress 1.4.3 Waitress WSGI server

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

dploy-kickstart-0.1.0.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

dploy_kickstart-0.1.0-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file dploy-kickstart-0.1.0.tar.gz.

File metadata

  • Download URL: dploy-kickstart-0.1.0.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for dploy-kickstart-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c0dfe233e404ff3a9419e5794b598c5206ff771f3d558b5ea36d4499fa1953ae
MD5 12e81675f1298afab2b5e11dbfee31ad
BLAKE2b-256 64a67f9503b1ae06f62238e78380132e3a888dbfeac8267fd8518f4807e9b33c

See more details on using hashes here.

File details

Details for the file dploy_kickstart-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: dploy_kickstart-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for dploy_kickstart-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bef5ab52f59eaeb5811aaad7b1625434b6ac5a546429040df1b2748240e4019e
MD5 bc277c8dba99a27e9e14312901b67d02
BLAKE2b-256 a38f21b68e918ef7d3cef9242f3e5f7bf2778cb6aae59dcd155140e3595fcd27

See more details on using hashes here.

Supported by

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