api_doc.py 2.39 KB

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
'''