- 将Flask应用最小化、模块化,并实现前后端分离
- 使用Flask-RestPlus实现RESTful API
- 结合Swagger将接口自动文档化
- 使用PyTest进行接口测试和代码覆盖率测试
模板项目使用Flask & Flask-RestPlus构建RESTful API。
整个应用主要使用两个blueprint:
-
Api Blueprint
使用Flask-RestPlus或普通的app.route来serve资源,在
/api
端点。 -
Client Blueprint
Flask仅仅serve Web应用的入口点,在
/
根路径端点。
- Python 2.7+或3.x
-
Clone仓库
-
创建一个virtual enviroment(推荐)
$ pip install --user pipenv
-
安装Python依赖,建议使用pipenv命令(在项目根目录下)
$ pipenv install
使用Flask serve所有API端点。服务器能在文件改动保存时自动重载。
项目根目录,执行
$ python run.py
或执行
$ sh ./run.sh -d
这会在localhost:5000
启动Flask开发服务器,并在/api
端点响应接口请求。
项目根目录,执行以下步骤。
-
设置环境变量:
执行
$ export FLASK_CONFIG="Production"
-
运行Flask应用:
执行
$ python run.py
或执行
$ sh ./run.sh
或使用Gunicorn运行应用(注意端口变化):
$ gunicorn app:app
普通接口:app/api/normal.py
RESTful接口:app/api/rest
RESTful接口自动文档化,在API路径下的doc
路径,如http://localhost:5000/api/doc/。
编写pytest测试集:test(另见“测试”)
推荐使用PostMan进行API开发和测试。
假数据:app/client/mock
。
确保dev依赖:
$ pipenv install --dev
运行pytest:
$ pipenv run pytest
- Flask-CAS
- Flask-CORS
- Celery