api_doc.py
2.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
base_part = '''
openapi: 3.0.0
info:
title: 接口文档
description: 宝马ocr/biz_logic接口文档
version: 1.0.0
servers:
- url: 'http://127.0.0.1:8000'
description: Development server
- url: 'http://127.0.0.1:8000'
description: sit
- url: 'http://127.0.0.1:8000'
description: uat
- url: 'http://127.0.0.1:8000'
description: prd
tags:
- name: user
description: 用户
- name: doc
description: 文件
security:
- bearerAuth: []
'''
# scheme: bearer
security_schemes = '''
bearerAuth: # arbitrary name for the security scheme
type: http
scheme: bearer
bearerFormat: JWT
description: >
token过期标志
1. Response Headers中的WWW-Authenticate中的status
status: -1 Invalid Authorization header
status: -2 Signature has expired beacause of expire_time
status: -3 Error decoding signature
status: -4 Signature has expired beacause new signature is generated
status: 0 valid Authorization
status: 1 new create, only login would set
2. Response Body中的meta -> status == 1
'''
responses = '''
ErrorResponse:
description: 调用异常, 具体情况请参考`HTTP`状态码和`meta -> status`字段
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
NoContent:
description: 后台接收请求,但是没有响应内容
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
'''
parameters = ''
schemas = '''
ApiResponse:
description: 响应对象,meta字段用于表示响应的状态; data字段用于存放响应内容
type: object
properties:
code:
type: integer
description: '0: success
1: need login
2: invalid params
3: internal error
4: object not exist
5: async wait
6: no permission
7: illegal operation'
msg:
type: string
nullable: true
data:
oneOf:
- type: object
nullable: true
- type: integer
nullable: true
- type: array
nullable: true
Pagination:
description: 分页参数
type: object
properties:
current:
description: 当前页面
type: integer
total:
description: 所有元素个数
type: integer
page_size:
description: 页面大小
type: integer
required:
- current
- total
- pageSize
'''