Skip to main content

No project description provided

Project description

Flaskerk

Build Status GitHub PyPI - Python Version

Provide OpenAPI document and validation for flask service.

Mainly built for Machine Learning Model services.

If you're using Falcon, check my another library Falibrary.

Features

  • JSON data(request&response) validation with pydantic
  • support HTTP exceptions (default&customized)
  • OpenAPI spec
  • Redoc UI
  • Swagger UI
  • support flask url path validation
  • support header validation
  • support cookie validation

Quick Start

install with pip install flaskerk (Python 3.6+)

from flask import Flask, request
from pydantic import BaseModel, Schema
from random import random
from flaskerk import Flaskerk, HTTPException

app = Flask(__name__)
api = Flaskerk()

class Query(BaseModel):
    text: str

class Response(BaseModel):
    label: int
    score: float = Schema(
        ...,
        gt=0,
        lt=1,
    )

class Data(BaseModel):
    uid: str
    limit: int
    vip: bool

e403 = HTTPException(code=403, msg='lucky for you')

@app.route('/api/predict/<string(length=2):source>/<string(length=2):target>', methods=['POST'])
@api.validate(query=Query, data=Data, resp=Response, x=[e403])
def predict(source, target):
    print(f'=> from {source} to {target}')  # path
    print(f'Data: {request.json_data}')  # Data
    print(f'Query: {request.query}')  # Query
    if random() < 0.5:
        e403.abort()
    return Response(label=int(10 * random()), score=random())

if __name__ == '__main__':
    api.register(app)
    app.run()

try it with http POST ':5000/api/predict/zh/en?text=hello' uid=0b01001001 limit=5 vip=true

Open the docs in http://127.0.0.1:5000/docs .

For more examples, check examples.

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

flaskerk-0.5.0.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

flaskerk-0.5.0-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file flaskerk-0.5.0.tar.gz.

File metadata

  • Download URL: flaskerk-0.5.0.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for flaskerk-0.5.0.tar.gz
Algorithm Hash digest
SHA256 7eb6bf1da1baccb2e9b9f2daf8816636ea539dee3ae8a4add5f4ea65706cd09a
MD5 aeea581a16c6860136c4043d11825f5d
BLAKE2b-256 e37363724d66b9b79215edc3f92a314e544de293e5687609d4e40d02a6ac9d96

See more details on using hashes here.

File details

Details for the file flaskerk-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: flaskerk-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for flaskerk-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dfccd8daa763abd5483056bd330b2945b28a9b8f1ee74fbb769273f7a52360ba
MD5 1ac6a431c1aa5a4c0ea9556837915d05
BLAKE2b-256 1205e3669e535b6f3fb235a608e171c6887fcea3ae21a11d3b626e28659dd7b1

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