No project description provided
Project description
Flaskerk
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
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.7.tar.gz
(6.9 kB
view details)
Built Distribution
File details
Details for the file flaskerk-0.3.7.tar.gz
.
File metadata
- Download URL: flaskerk-0.3.7.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 | a9cc83192dc036a883ce6520318b3de98f25b0f8ec84e1a942da04c4d81232c7 |
|
MD5 | 2584b1bb52580f52d8c20448fd45c5ca |
|
BLAKE2b-256 | 4a16ce7f7225f2fad3a3dee3173e5bcb80af0c2dab8fb4fcafb4d1e39e6f6314 |
File details
Details for the file flaskerk-0.3.7-py3-none-any.whl
.
File metadata
- Download URL: flaskerk-0.3.7-py3-none-any.whl
- Upload date:
- Size: 8.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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8fdf0f8388d1fff1d8da5a7d53a3152c56f3cedc6b68f72b95a1846b46486fc8 |
|
MD5 | dba435a15e1ac5c4cea6edcac665b68c |
|
BLAKE2b-256 | 806e366bcf24fe11bec7fb3a5ed805313c7f3581e5da9cf9a80bdd6a43d332b2 |