api_doc.py 6.69 KB
base_part = '''
swagger: "2.0"
info:
  title: 接口文档
  description: 宝马ocr/biz_logic接口文档
  version: 1.0.0
host: "staging-bmw-ocr.situdata.com"
basePath: "/"
tags:
  - name: info
    description: 比对信息
schemes:
- "https"
security:
  - OAuth2: []
'''

#   scheme: oauth
security_definitions = '''
OAuth2:
    type: oauth2
    flow: application
    description: >
        This API uses OAuth 2 with the application(clientCredentials) grant flow.
        
        client_id=sMlciTkppsMzARwHpCVarm5q7DP2Vucj3ny8JFhw
        
        client_secret=WNoOilDx140ZLcenDKfsnikv7S2LIFs60DciYoqnrZaYLqYsKpcmt7mJIL69o9AEf84uQvRnS3K2UioxfjNyImjR4UOyXbDcF6qYgTLC4KDVByKFdVhKfrn2Lc4q4BNW
        
        scopes=write
    tokenUrl: https://staging-bmw-ocr.situdata.com/api/oauth/token/
    scopes:
      write: Grants write access
'''

responses = '''
ErrorResponse:
  description: 调用异常, 具体情况请参考`HTTP`状态码和`code`字段
  schema:
    $ref: '#/definitions/ApiResponse'
NoContent:
  description: 后台接收请求,但是没有响应内容
  schema:
    $ref: '#/definitions/ApiResponse'
'''

parameters = ''

definitions = '''
individualCusInfo:
  type: object
  required: [applicantType, idType, customerChineseName, idNum, idExpiryDate, dateOfBirth, companyName, registeredCapital, selfEmployedSubType]
  properties:
    applicantType:
      description: applicantType
      type: string
      example: COAPP
      enum: [COAPP, CUSTR, GAUTR1, GAUTR2]
    idType:
      description: idType
      type: string
      example: ITARI
      enum: [ITARI, ITHKM, ITPRC, ITPSP, ITRES, ITTID, ITUSC, ITCCU]
    secondIdType:
      description: secondIdType
      type: string
      example: ITARI
      enum: [ITARI, ITHKM, ITPRC, ITPSP, ITRES, ITTID]
    customerChineseName:
      description: customerChineseName
      type: string
      example: 李四
    idNum:
      description: idNum
      type: string
      example: 111111199404251111
    secondIdNum:
      description: secondIdNum
      type: string
      example: 111111199404251111
    idExpiryDate:
      description: idExpiryDate
      type: string
      format: date
      example: "2027-04-30"
    dateOfBirth:
      description: dateOfBirth
      type: string
      format: date
      example: "2027-04-30"
    companyName:
      description: companyName
      type: string
      example: 北京思图场景数据科技服务有限公司 
    registeredCapital:
      description: registeredCapital 
      type: number
      format: float
      example: 1234.56
    selfEmployedSubType:
      description: selfEmployedSubType
      type: string
      example: CSIBM
      enum: [CSIBM, CSOTH, CSSME]
          
Comparison:
  type: object
  required: [content]
  properties:
    content:
      description: 比对内容信息
      type: object
      required: [uniqSeq, applicationId, applicationEntity, customerType, applicationVersion, vehicleStatus, comments, individualCusInfo]
      properties: 
        uniqSeq:
          description: uniqSeq
          type: string
          example: 201809301905121000
        applicationId:
          description: applicationId
          type: string
          example: CH-B100000123
        applicationEntity:
          description: applicationEntity
          type: string
          example: HIL
          enum: [AFC, HIL]
        customerType:
          description: customerType
          type: string
          example: TCCOR
          enum: [TCCOR, TCDAS, TCFRE, TCIAS, TCIND, TCSEP, TCURE]
        applicationVersion:
          description: applicationVersion
          type: integer
          example: 0
        vehicleStatus:
          description: vehicleStatus
          type: string
          example: PCUSD
          enum: [PCUSD, PCNEW]
        comments:
          description: comments
          type: array
          items:
            type: string
        individualCusInfo:
          description: individualCusInfo
          type: array
          items:
            $ref: "#/definitions/individualCusInfo"
        
        usedCarInfo:
          description: usedCarInfo
          type: object
          required: [vinNo, manufactureDate, firstRegistrationDate]
          properties: 
            vinNo:
              description: vinNo
              type: string
              example: LBVSFJSDLFJLSDJF
            manufactureDate:
              description: manufactureDate
              type: string
              format: date
              example: "2027-04-30"
            firstRegistrationDate:
              description: firstRegistrationDate
              type: string
              format: date
              example: "2027-04-30"
        
        corporateCusInfo:
          description: corporateCusInfo
          type: object
          required: [customerChineseName, legalRepName, idNum, businessLicenseNo, taxRegistrationCode, incorporationDate, businessLicenseDueDate, capitalRegAmount]
          properties: 
            customerChineseName:
              description: customerChineseName
              type: string
              example: 北京思图场景数据科技服务有限公司
            legalRepName:
              description: legalRepName
              type: string
              example: 李六
            idNum:
              description: idNum
              type: string
              example: MA007438143XJ1P
            businessLicenseNo:
              description: businessLicenseNo
              type: string
              example: MA007438143XJ1P
            taxRegistrationCode:
              description: taxRegistrationCode
              type: string
              example: MA007438143XJ1P
            incorporationDate:
              description: incorporationDate
              type: string
              format: date
              example: "2027-04-30"
            businessLicenseDueDate:
              description: businessLicenseDueDate
              type: string
              format: date
              example: "2027-04-30"
            capitalRegAmount:
              description: capitalRegAmount 
              type: number
              format: float
              example: 1234.56 

ApiResponse:
  description: 响应对象,code字段用于表示响应的状态; data字段用于存放响应内容
  type: object
  required: [code, msg]
  properties:
    code:
      type: integer
      format: uint8
      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'
      example: 0
      enum: [0, 1, 2, 3, 4, 5, 6, 7]
    msg:
      type: string
      example: success
    data:
      type: object
'''