API参考文档
概述
邮轮穿舱件管理系统后台提供完整的RESTful API接口,用于管理用户、权限、工件、工单、图片等核心业务对象。系统基于FastAPI框架构建,支持JWT认证和权限控制。
认证与授权
JWT认证接口
端点: POST /token
描述: 使用用户名和密码获取JWT访问令牌
请求参数:
username(string, required): 用户名password(string, required): 密码
响应格式:
\{
"access_token": "jwt_token_string",
"token_type": "bearer"
\}
错误代码:
- 401: 认证失败,用户名或密码错误
参考文件: login.py
用户管理接口
创建用户
端点: POST /users/
权限: system:write
描述: 创建一个新的用户账户
请求体:
\{
"username": "string",
"password": "string",
"email": "string (optional)",
"sms": "string (optional)",
"status": "active|inactive|suspended|deleted (optional)",
"openid": "string (optional)",
"is_system": "boolean (optional)"
\}
响应格式: UserSchemaOut
错误代码:
- 400: 用户名或邮箱已存在
- 500: 服务器内部错误
参考文件: user_router.py
用户注册
端点: POST /users/register
描述: 用户自主注册新账户
请求体: 同创建用户 响应格式: UserSchemaOut
参考文件: user_router.py
获取用户列表
端点: GET /users/
权限: system:read
查询参数:
skip(int, optional): 跳过的记录数,默认0limit(int, optional): 返回的记录数,默认100,最大1000
响应格式: List[UserSchemaOut]
参考文件: user_router.py
根据ID获取用户
端点: GET /users/\{user_id\}
响应格式: UserSchemaOut 错误代码: 404: 用户不存在
参考文件: user_router.py
根据用户名获取用户
端点: GET /users/username/\{username\}
响应格式: UserSchemaOut
参考文件: user_router.py
更新用户信息
端点: PUT /users/\{user_id\}
请求体: UserUpdateSchema(支持部分更新) 响应格式: UserSchemaOut
参考文件: user_router.py
删除用户
端点: DELETE /users/\{user_id\}
响应状态: 204 No Content 错误代码: 404: 用户不存在
参考文件: user_router.py
修改用户状态
端点: PATCH /users/\{user_id\}/status
请求体:
\{
"status": "active|inactive|suspended|deleted"
\}
响应格式: UserSchemaOut
参考文件: user_router.py
用户认证
端点: POST /users/authenticate
请求体: UserLoginSchema 响应格式: UserSchemaOut 错误代码: 401: 认证失败
参考文件: user_router.py
权限管理接口
获取用户权限列表
端点: GET /permissions/roles/user/\{user_id\}/scopes
描述: 获取指定用户的所有权限范围
响应格式:
\{
"user_id": "int",
"scopes": ["string"]
\}
参考文件: role_router.py
为用户授予权限
端点: POST /permissions/roles/grant-scope
请求体:
\{
"user_id": "int",
"scope_name": "string"
\}
响应格式: \{"message": "权限授予成功"\}
参考文件: role_router.py
为用户撤销权限
端点: POST /permissions/roles/revoke-scope
请求体: 同授予权限
响应格式: \{"message": "权限撤销成功"\}
参考文件: role_router.py
工件管理接口
创建工件
端点: POST /workpiece/
描述: 创建新的工件实体
响应格式: Workpiece ORM对象
参考文件: workpiece_router.py
获取所有工件
端点: GET /workpiece/all
响应格式: List[Workpiece]
参考文件: workpiece_router.py
删除工件
端点: DELETE /workpiece/\{wp_id\}
响应格式: \{"message": "Workpiece deleted successfully"\}
错误代码: 404: 工件不存在
参考文件: workpiece_router.py
更新工件状态
端点: PUT /workpiece/\{wp_id\}/status
请求参数:
status(int): 新的状态值
响应格式: 更新后的Workpiece对象
参考文件: workpiece_router.py
工单管理接口
创建工单
端点: POST /ticket/
请求体: TicketInSchema 响应格式: TicketOutSchema
参考文件: ticket_router.py
根据工单ID获取工单
端点: GET /ticket/\{ticket_id\}
响应格式: TicketOutSchema
参考文件: ticket_router.py
更新工单
端点: PUT /ticket/\{ticket_id\}
请求体: TicketInSchema 响应格式: TicketOutSchema
参考文件: ticket_router.py
删除工单
端点: DELETE /ticket/\{ticket_id\}
响应格式: TicketOutSchema
参考文件: ticket_router.py
获取所有工单实体
端点: GET /ticketEntity/all
响应格式: List[TicketOutSchema]
参考文件: ticket_router.py
图片管理接口
创建新图片实体
端点: POST /image/create
描述: 上传新图片实体到系统
请求参数:
image(file): 图片文件
响应格式: Image ORM对象
参考文件: image_router.py
删除图片实体
端点: DELETE /image/delete
查询参数: image_id (int)
响应格式: {"msg": "ok"}
参考文件: image_router.py
获取图片OSS键
端点: GET /image/keyById
查询参数: id (int)
响应格式: Image ORM对象
错误代码: 404: 图片实体不存在
参考文件: image_router.py
绑定图片到工件
端点: POST /image/enable/bind
请求体:
\{
"image_id": "int",
"workpiece_id": "int"
\}
参考文件: image_router.py
解绑图片到工件
端点: POST /image/disable/bind
请求体: 同绑定接口
参考文件: image_router.py
获取未绑定图片实体
端点: GET /image/status/list/unbinds
响应格式: List[Image]
参考文件: image_router.py
获取所有绑定元组
端点: GET /image/status/list/binds
响应格式: List[绑定元组]
参考文件: image_router.py
获取所有图片实体
端点: GET /image/status/list/imageEntity
响应格式: List[Image]
参考文件: image_router.py
根据key搜索图片
端点: GET /image/searchByKey
查询参数: key (string)
响应格式: 搜索结果
参考文件: image_router.py
根据ID搜索图片
端点: GET /image/searchById
查询参数: image_id (int)
响应格式: 搜索结果
参考文件: image_router.py
统计管理接口
统计摘要接口
端点: GET /stat/countInfo
描述: 获取系统统计摘要
响应格式:
\{
"user_count": "int",
"ticket_count": "int",
"image_count": "int",
"log_count": "int"
\}
参考文件: stat_router.py
系统状态接口
根状态检查
端点: GET /
响应格式: {"message": "system works fine"}
参考文件: main.py
API状态检查
端点: GET /info
响应格式: {"status": "ok"}
参考文件: main.py
数据模型
UserSchemaIn
\{
"username": "string",
"password": "string",
"email": "string?",
"sms": "string?",
"status": "UserStatus?",
"openid": "string?",
"is_system": "boolean?"
\}
参考文件: user_schema.py
UserSchemaOut
包含所有用户字段及创建/更新时间戳
参考文件: user_schema.py
TicketInSchema/TicketOutSchema
包含工单类型、状态、关联工件、内容等字段
参考文件: ticket_schema.py
错误处理
系统使用标准HTTP状态码:
- 200: 成功
- 400: 请求参数错误
- 401: 认证失败
- 403: 权限不足
- 404: 资源不存在
- 500: 服务器内部错误
错误响应格式:
\{
"error": "错误类型",
"message": "错误描述",
"status_code": "HTTP状态码"
\}
系统架构图
flowchart TD
A[客户端] --> B[FastAPI应用]
B --> C[认证中间件]
C --> D[路由层]
D --> E[服务层]
E --> F[数据访问层]
F --> G[数据库]
subgraph 路由模块
H[用户管理]
I[权限管理]
J[工件管理]
K[工单管理]
L[图片管理]
M[统计管理]
end
D --> H
D --> I
D --> J
D --> K
D --> L
D --> M
索引
本API文档详细描述了邮轮穿舱件管理系统的所有接口端点,包括认证授权、用户管理、权限控制、工件管理、工单处理、图片管理等核心功能。所有接口均支持JWT认证,部分接口需要特定的权限范围才能访问。
系统采用RESTful设计原则,提供清晰的错误处理机制和完整的数据模型定义。开发者可以根据业务需求选择合适的接口进行集成开发。
参考文件汇总:
- main.py - 主应用文件
- login.py - 认证路由
- user_router.py - 用户管理路由
- role_router.py - 权限管理路由
- workpiece_router.py - 工件管理路由
- ticket_router.py - 工单管理路由
- image_router.py - 图片管理路由
- stat_router.py - 统计管理路由
- user_schema.py - 用户数据模型
- ticket_schema.py - 工单数据模型