没有项目描述
flaskerk的Python项目详细描述
剥皮
为烧瓶服务提供openapi文档和验证。
主要用于机器学习模型服务。
功能
- [x]json数据(请求和响应)验证与pydantic
- [X]支持HTTP异常(默认和自定义)
- [X]OpenAPI spec
- [X]Redoc UI
- []Swagger UI
- [X]支持烧瓶URL路径验证
- []支持头验证
- []支持cookie验证
快速启动
使用pip install flaskerk
(python 3.6+)
fromflaskimportFlask,requestfrompydanticimportBaseModel,SchemafromrandomimportrandomfromflaskerkimportFlaskerk,HTTPException,abort_jsonapp=Flask(__name__)api=Flaskerk(app)classQuery(BaseModel):text:strclassResponse(BaseModel):label:intscore:float=Schema(...,gt=0,lt=1,)classData(BaseModel):uid:strlimit:intvip:boole403=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])defpredict(source,target):print(f'=> from {source} to {target}')# pathprint(f'Data: {request.json_data}')# Dataprint(f'Query: {request.query}')# Queryifrandom()<0.5:e403.abort()returnResponse(label=int(10*random()),score=random())if__name__=='__main__':app.run()
用http POST ':5000/api/predict/zh/en?text=hello' uid=0b01001001 limit=5 vip=true
打开http://127.0.0.1:5000/docs中的文档。
有关更多示例,请检查examples。