# 宝马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即可查看文档