api_doc_bak.py 9.08 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: doc
    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 = '''
Doc:
  type: object
  required: [applicationData, applicantData, document]
  properties:
    applicationData:
      description: 申请信息
      type: object
      required: [applicationId]
      properties: 
        applicationId:
          description: 申请id
          type: string
          example: CH-B0011010101
    applicantData:
      description: 申请人信息
      type: object
      required: [mainApplicantName, coApplicantName, guarantor1Name, guarantor2Name]
      properties: 
        mainApplicantName:
          description: 主申请人
          type: string
          example: 王明阳
        coApplicantName:
          description: 共同申请人
          type: string
          example: 王明月
        guarantor1Name:
          description: 担保人1
          type: string
          example: 王明日
        guarantor2Name:
          description: 担保人2
          type: string
          example: 王明雨
    document:
      description: 文件信息
      type: object
      required: [documentName, documentScheme, businessType, uploadFinishTime, dataSource, metadataVersionId]
      properties: 
        documentName:
          description: 文件名
          type: string
          example: CH-B0011010101王明阳申请表
        documentScheme:
          description: 文件方案
          type: string
          example: Acceptance
          enum: [Acceptance, Settlement, Contract Management]
        businessType:
          description: 业务类型
          type: string
          example: CO00001
          enum: [CO00001, CO00002]
        uploadFinishTime:
          description: 上传完成时间
          type: string
          example: '2020-09-01 12:21:11'
        dataSource:
          description: 数据源
          type: string
          example: POS
          enum: [POS, EAPP, Econtract]
        metadataVersionId:
          description: 元数据版本ID
          type: string
          example: '8410480'
          
Application:
  type: object
  required: [APPLICATION_INFORMATION]
  properties:
    APPLICATION_INFORMATION:
      description: 申请单信息
      type: object
      required: [SUBMIT_DATETIME, STATUS, ENTITY, RATING, APPLICATION_ID, APPLICATION_VERSION, INTERMEDIATE_DECISION]
      properties: 
        SUBMIT_DATETIME:
          description: 提交时间
          type: string
          example: 2020-07-08T18:33:31.000+08:00
        STATUS:
          description: 状态
          type: integer
          example: 42
        ENTITY:
          description: 业务类型
          type: string
          example: CO00001
          enum: [CO00001, CO00002]
        RATING:
          description: 排名
          type: integer
          example: 4
        APPLICATION_ID:
          description: 申请id
          type: string
          example: CH-B0011010101
        APPLICATION_VERSION:
          description: 申请版本
          type: integer
          example: 1
        INTERMEDIATE_DECISION:
          description: ''
          type: string
          example: MUW

individualCusInfo:
  type: object
  required: [applicantType, idType, customerChineseName, idNum, idExpiryDate, dateOfBirth, 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
      example: 2027-04-30
    dateOfBirth:
      description: dateOfBirth
      type: string
      example: 2027-04-30
    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
              example: 2027-04-30
            firstRegistrationDate:
              description: firstRegistrationDate
              type: string
              example: 2027-04-30
        
        corporateCusInfo:
          description: corporateCusInfo
          type: object
          required: [customerChineseName, legalRepName, idNum, businessLicenseNo, taxRegistrationCode, incorporationDate, businessLicenseDueDate]
          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
              example: 2027-04-30
            businessLicenseDueDate:
              description: businessLicenseDueDate
              type: string
              example: 2027-04-30

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