138 lines
5.5 KiB
YAML
138 lines
5.5 KiB
YAML
openapi: 3.0.3
|
|
info:
|
|
title: Order Batch Import File Internal API
|
|
version: 1.0.0
|
|
description: >-
|
|
Order批量导入源文件与错误报告均为客户所有的不可变XLSX对象;businessId固定为Order生成的batchNo。
|
|
File只保存并校验对象归属,不复制导入任务状态。
|
|
x-lifecycle-owner: ORDER
|
|
x-file-object-semantics: IMMUTABLE_CREATE_ONLY
|
|
paths:
|
|
/api/merchant/v1/files/order-batch-imports/{batchNo}/error-reports/{fileId}:
|
|
get:
|
|
summary: 客户下载本客户批量导入错误报告
|
|
description: 需要merchant:order:create;客户作用域只取登录态,文件类别固定ORDER_BATCH_IMPORT_ERROR_REPORT。
|
|
security: [{bearerAuth: []}]
|
|
parameters:
|
|
- {$ref: '#/components/parameters/BatchNo'}
|
|
- {$ref: '#/components/parameters/FileId'}
|
|
responses:
|
|
'200':
|
|
description: 精确归属的XLSX错误报告
|
|
headers:
|
|
Cache-Control: {schema: {type: string, enum: [no-store]}}
|
|
Content-Disposition: {schema: {type: string}}
|
|
content:
|
|
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
|
|
schema: {type: string, format: binary}
|
|
/internal/file/v1/business-files/{tenantId}/{businessType}/{batchNo}:
|
|
post:
|
|
summary: Order上传批量导入源文件或错误报告
|
|
security: [{internalServiceToken: []}]
|
|
parameters:
|
|
- {$ref: '#/components/parameters/OperatorId'}
|
|
- {$ref: '#/components/parameters/TenantId'}
|
|
- {$ref: '#/components/parameters/BusinessType'}
|
|
- {$ref: '#/components/parameters/BatchNo'}
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
required: [file]
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: 有效XLSX文件,最大5MiB
|
|
responses:
|
|
'200': {$ref: '#/components/responses/Metadata'}
|
|
/internal/file/v1/business-files/{tenantId}/{businessType}/{batchNo}/{fileId}:
|
|
get:
|
|
summary: Order精确校验批量导入文件元数据
|
|
security: [{internalServiceToken: []}]
|
|
parameters:
|
|
- {$ref: '#/components/parameters/TenantId'}
|
|
- {$ref: '#/components/parameters/BusinessType'}
|
|
- {$ref: '#/components/parameters/BatchNo'}
|
|
- {$ref: '#/components/parameters/FileId'}
|
|
responses:
|
|
'200': {$ref: '#/components/responses/Metadata'}
|
|
/internal/file/v1/business-files/{tenantId}/{businessType}/{batchNo}/{fileId}/content:
|
|
get:
|
|
summary: Order下载批量导入源文件或错误报告
|
|
security: [{internalServiceToken: []}]
|
|
parameters:
|
|
- {$ref: '#/components/parameters/TenantId'}
|
|
- {$ref: '#/components/parameters/BusinessType'}
|
|
- {$ref: '#/components/parameters/BatchNo'}
|
|
- {$ref: '#/components/parameters/FileId'}
|
|
responses:
|
|
'200':
|
|
description: 精确归属的XLSX附件;错误客户、类别、batchNo或fileId不得命中
|
|
headers:
|
|
Cache-Control: {schema: {type: string, enum: [no-store]}}
|
|
Content-Disposition: {schema: {type: string}}
|
|
content:
|
|
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
|
|
schema: {type: string, format: binary}
|
|
components:
|
|
securitySchemes:
|
|
bearerAuth: {type: http, scheme: bearer, bearerFormat: JWT}
|
|
internalServiceToken: {type: apiKey, in: header, name: X-Internal-Service-Token}
|
|
parameters:
|
|
OperatorId:
|
|
name: X-Operator-Id
|
|
in: header
|
|
required: true
|
|
schema: {$ref: '#/components/schemas/Id'}
|
|
TenantId:
|
|
name: tenantId
|
|
in: path
|
|
required: true
|
|
description: 当前客户ID,必须大于0
|
|
schema: {$ref: '#/components/schemas/Id'}
|
|
BusinessType:
|
|
name: businessType
|
|
in: path
|
|
required: true
|
|
schema: {type: string, enum: [ORDER_BATCH_IMPORT_SOURCE, ORDER_BATCH_IMPORT_ERROR_REPORT]}
|
|
BatchNo:
|
|
name: batchNo
|
|
in: path
|
|
required: true
|
|
schema: {type: string, pattern: '^OBI-[0-9A-F]{20}$'}
|
|
FileId:
|
|
name: fileId
|
|
in: path
|
|
required: true
|
|
schema: {$ref: '#/components/schemas/Id'}
|
|
responses:
|
|
Metadata:
|
|
description: 客户批量导入文件元数据
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: [code, data]
|
|
properties:
|
|
code: {type: string, enum: ['200']}
|
|
data: {$ref: '#/components/schemas/Metadata'}
|
|
schemas:
|
|
Id: {type: string, pattern: '^[1-9][0-9]*$'}
|
|
Metadata:
|
|
type: object
|
|
required: [fileId, ownerScope, tenantId, businessType, businessId, fileName, sha256, contentType, sizeBytes]
|
|
properties:
|
|
fileId: {$ref: '#/components/schemas/Id'}
|
|
ownerScope: {type: string, enum: [CUSTOMER]}
|
|
tenantId: {$ref: '#/components/schemas/Id'}
|
|
businessType: {type: string, enum: [ORDER_BATCH_IMPORT_SOURCE, ORDER_BATCH_IMPORT_ERROR_REPORT]}
|
|
businessId: {type: string, pattern: '^OBI-[0-9A-F]{20}$'}
|
|
fileName: {type: string}
|
|
sha256: {type: string, pattern: '^[0-9a-f]{64}$'}
|
|
contentType: {type: string, enum: [application/vnd.openxmlformats-officedocument.spreadsheetml.sheet]}
|
|
sizeBytes: {type: integer, format: int64, minimum: 1, maximum: 5242880}
|
|
createdAt: {type: string, description: 持久化上传时间LocalDateTime,无时区偏移}
|