Appearance
API 参考
提示
本章节只针对开发者和测试人员阅读,普通用户可以跳过此章节。
本文档概述了 KanTime 后端提供的核心 API 接口。所有接口都以 /api/v1 为前缀。
认证 (Authentication)
- 路径:
/auth - 描述: 处理用户登录和令牌生成。
- 主要接口:
POST /login: 用户通过用户名和密码登录,成功后返回 JWTaccess_token。
用户 (Users)
- 路径:
/users - 描述: 管理系统用户、角色、部门和薪酬。
- 权限: 大部分操作需要
user_manage权限。 - 主要接口:
POST /: 创建新用户。GET /: 获取用户列表(分页)。GET /me: 获取当前登录用户的详细信息。GET /{user_id}: 获取指定用户的详细信息。PUT /{user_id}: 更新用户信息。DELETE /{user_id}: 软删除用户。PUT /{user_id}/roles: 同步(设置)用户的全局角色。POST /{user_id}/roles: 为用户分配单个全局角色。DELETE /{user_id}/roles/{role_id}: 移除用户的单个全局角色。PUT /{user_id}/departments: 同步(设置)用户的部门。POST /{user_id}/departments: 为用户分配部门。DELETE /{user_id}/departments/{department_id}: 从用户移除部门。
项目 (Projects)
- 路径:
/projects - 描述: 管理项目及其成员、客户和工时。
- 权限: 访问权限基于用户的全局角色或项目内角色。
- 主要接口:
POST /: 创建新项目。GET /: 获取当前用户可访问的项目列表(分页)。GET /{project_id}: 获取项目详情,包括成员、客户、成本等。PUT /{project_id}: 更新项目信息。DELETE /{project_id}: 归档(软删除)项目。GET /{project_id}/members: 获取项目成员列表。POST /{project_id}/members: 为项目添加成员。POST /{project_id}/members/batch: 批量为项目添加成员。PUT /{project_id}/members/{user_id}: 更新项目成员的角色。DELETE /{project_id}/members/{user_id}: 从项目中移除成员。POST /{project_id}/members/delete-batch: 批量从项目中移除成员。POST /{project_id}/clients: 为项目关联客户。DELETE /{project_id}/clients/{client_id}: 从项目移除客户关联。GET /{project_id}/timesheets: 获取项目下的工时单列表。
工时单 (Timesheets)
- 路径:
/timesheets - 描述: 管理工时记录和审批流程。
- 权限: 权限与用户角色(普通用户、项目经理、管理员)紧密相关。
- 主要接口:
POST /: 创建一个新的草稿工时单。POST /batch: 批量创建新的草稿工时单。GET /: 根据权限获取工时单列表(分页,支持筛选)。GET /{timesheet_id}: 获取工时单详情及其审批历史。PUT /{timesheet_id}: 更新草稿状态的工时单。DELETE /{timesheet_id}: 删除草稿状态的工时单。POST /{timesheet_id}/submit: 提交工时单,启动审批流。POST /{timesheet_id}/approve: (项目经理) 批准工时单。POST /{timesheet_id}/reject: (项目经理) 拒绝工时单。POST /{timesheet_id}/withdraw: (提交者) 撤回待审批的工时单。POST /{timesheet_id}/request-change: (提交者) 对已批准的工时单申请变更。POST /{timesheet_id}/approve-change: (项目经理) 批准变更申请。POST /{timesheet_id}/reject-change: (项目经理) 拒绝变更申请。
客户 (Clients)
- 路径:
/clients - 描述: 管理客户信息。
- 权限: 需要
client_manage或client_view权限。 - 主要接口:
POST /: 创建新客户。GET /: 获取客户列表(分页)。GET /{client_id}: 获取单个客户信息。PUT /{client_id}: 更新客户信息。DELETE /{client_id}: 删除客户。
部门 (Departments)
- 路径:
/departments - 描述: 管理部门信息。
- 权限: 任何已认证的用户。
- 主要接口:
GET /: 获取所有部门的列表。
角色 (Roles)
- 路径:
/roles - 描述: 管理角色信息。
- 权限: 任何已认证的用户。
- 主要接口:
GET /: 获取所有角色的列表,可按scope(如global,project) 筛选。
成本记录 (Cost Records)
- 路径:
/projects/{project_id}/cost-records或/cost-records - 描述: 管理项目的直接成本。
- 权限: 需要
global_admin角色。 - 主要接口:
GET /projects/{project_id}/cost-records: 获取指定项目的所有成本记录。POST /projects/{project_id}/cost-records: 为指定项目创建一条新的成本记录。PUT /cost-records/{record_id}: 更新指定的成本记录。DELETE /cost-records/{record_id}: 删除指定的成本记录。GET /cost-record-types: 获取所有成本记录类型的列表。
薪酬 (Salaries)
- 路径:
/users/{user_id}/salaries或/salaries - 描述: 管理用户的薪酬历史。
- 权限: 需要
global_admin角色。 - 主要接口:
GET /users/{user_id}/salaries: 获取指定用户的薪酬历史。POST /users/{user_id}/salaries: 为指定用户添加新的薪酬记录。PUT /salaries/{salary_id}: 更新指定的薪酬记录。DELETE /salaries/{salary_id}: 删除指定的薪酬记录。