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.

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, abort_json

app = Flask(__name__)
api = Flaskerk(app)

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

@app.route('/api/predict/<string(length=2):source>/<string(length=2):target>', methods=['POST'])
@api.validate(query=Query, data=Data, resp=Response, x=[HTTPException(403)])
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:
        abort_json(403)
    return Response(label=int(10 * random()), score=random())

if __name__ == '__main__':
    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.3.1.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

flaskerk-0.3.1-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: flaskerk-0.3.1.tar.gz
  • Upload date:
  • Size: 6.3 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.3.1.tar.gz
Algorithm Hash digest
SHA256 c254c2febd2e9bc879e6c4101cf17c56cc46089f7c1da66d86f2fdd3a235091d
MD5 e8caa7e7362551a408e665f0477fcf3c
BLAKE2b-256 49035480363a4c0313ee83a72457230057053a6fe525ef5d72d7313d498f7762

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flaskerk-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 7.8 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.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5f14f8a1c3dfc32454ac2d76d80c4390e23aa307b2ecf066551dba8e09944412
MD5 c96e30f2a6213e4d34c60189ea07426a
BLAKE2b-256 c7301b4e9100222a13e2571094229601d39069479bcc1c0e880acdf44e6d9cad

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