# 宝马OCR系统开发规范
## 代码规范
1. 参考 [python_specification.md](python_specification.md)
2. 帐号、密码严禁提交到git仓中
3. 参与开发前请阅读[十二要素应用宣言](https://12factor.net/zh_cn/)
## 接口文档
接口文档使用`openapi`规范书写, 可以参考[demo](http://editor.swagger.io/)以获取直观感受。
目前,接口文档写在代码中, 并通过脚本将代码中的文档提取出来, 示例如下。
1. 编写文档
```python
class UserInfoView(APIView):
def get(self, request):
user_info = serializers.staff_detail.dump(request.user).data
return APIResponse.ok(user_info)
get.openapi_doc = '''
summary: 获取个人信息
tags:
- 帐号
responses:
200:
description: ok
content:
application/json:
schema:
type: object
properties:
meta:
$ref: '#/components/schemas/ApiResponseMeta'
data:
$ref: '#/components/schemas/AccountInfoDetail'
'''
```
2. 提取接口文档
```
$: python manage.py generate_api_doc -o ../docs/main.yaml
api doc generated succssfully: ../docs/main.yaml
```
3. 校对接口文档
```
$: python manage.py validate_api_doc ../docs/main.yaml
ok
```
4. 查看接口文档
* 方法1: 粘贴到[online editor](http://editor.swagger.io/)中查看
* 方法2: 安装 https://bitbucket.org/abrahamL/openapi_toolset.git
```
$: cd docs
$: ls
main.yaml
$: python -m openapi_toolset
* Serving Flask app "openapi_toolset" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:9090/ (Press CTRL+C to quit)
```
浏览器访问http://127.0.0.1:9090即可查看文档