api-design-integration.md 1.7 KB

API设计和集成

API集成策略

  • API集成策略: 保持现有RESTful API设计,增强OpenAPI文档
  • 认证: JWT Bearer Token,保持现有认证机制
  • 版本控制: 使用v1前缀 (/api/v1/),保持向后兼容

API端点示例

用户管理端点:

  • 方法: GET
  • 端点: /api/v1/users
  • 用途: 获取用户分页列表
  • 集成: 使用通用CRUD服务,支持搜索和过滤

请求示例:

{
  "page": 1,
  "pageSize": 10,
  "keyword": "搜索词",
  "sortBy": "createdAt",
  "sortOrder": "DESC"
}

响应示例:

{
  "data": [
    {
      "id": 1,
      "email": "user@example.com",
      "roles": [{"id": 1, "name": "admin"}]
    }
  ],
  "pagination": {
    "total": 100,
    "current": 1,
    "pageSize": 10
  }
}

文件管理端点:

  • 方法: POST
  • 端点: /api/v1/files/upload-policy
  • 用途: 生成文件上传策略和预签名URL
  • 集成: 使用MinIO服务,支持分段上传和大文件处理

请求示例:

{
  "name": "example.pdf",
  "type": "application/pdf",
  "size": 1048576,
  "description": "示例文件"
}

响应示例:

{
  "file": {
    "id": 123,
    "name": "example.pdf",
    "path": "user-1/uuid-example.pdf",
    "size": 1048576,
    "type": "application/pdf",
    "uploadUserId": 1,
    "uploadTime": "2025-09-19T10:30:00.000Z"
  },
  "uploadPolicy": {
    "x-amz-algorithm": "AWS4-HMAC-SHA256",
    "x-amz-credential": "minioadmin/20250919/us-east-1/s3/aws4_request",
    "x-amz-date": "20250919T103000Z",
    "policy": "base64-encoded-policy",
    "x-amz-signature": "signature",
    "host": "https://minio.example.com",
    "key": "user-1/uuid-example.pdf",
    "bucket": "d8dai"
  }
}