No project description provided
Project description
Flaskerk
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(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
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__':
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
Release history Release notifications | RSS feed
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.9.tar.gz
(6.9 kB
view details)
Built Distribution
File details
Details for the file flaskerk-0.3.9.tar.gz
.
File metadata
- Download URL: flaskerk-0.3.9.tar.gz
- Upload date:
- Size: 6.9 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e09eed1e510ce23cfd2c96191b1f44b3a23f45a01ca25978902e02c619b424e |
|
MD5 | f5719c05235945405683bb30ca686adb |
|
BLAKE2b-256 | a552a4c2638222f4584c7781192b26bb897b31852dac53e53bdac959e41f20e2 |
File details
Details for the file flaskerk-0.3.9-py3-none-any.whl
.
File metadata
- Download URL: flaskerk-0.3.9-py3-none-any.whl
- Upload date:
- Size: 8.6 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0fb98c8c29626fd585014f87af9d22b8f7e070987daf594658bb1201101b1761 |
|
MD5 | cf8c2c7af70ff5537a95a89515b96332 |
|
BLAKE2b-256 | d79e3fec841c355164841224949bf415eff99de17c54de98577f2142907acdcd |