首页
/ SolidTime项目API接口详解:项目管理与时间记录功能

SolidTime项目API接口详解:项目管理与时间记录功能

2025-07-07 05:02:10作者:温玫谨Lighthearted

项目概述

SolidTime是一个专注于时间管理和项目跟踪的系统,通过其API接口提供了完整的项目管理和时间记录功能。本文将从技术角度深入解析SolidTime的API设计,帮助开发者理解如何通过这些接口实现项目管理和时间跟踪功能。

API基础信息

SolidTime API采用OpenAPI 3.1.0规范,提供了三个环境端点:

  1. 生产环境:https://app.solidtime.io/api
  2. 预发布环境:https://app.staging.solidtime.io/api
  3. 本地开发环境:https://soldtime.test/api

所有API请求都需要OAuth2认证,确保数据访问的安全性。

项目管理API详解

1. 获取项目列表

端点GET /v1/organization/{organization}/projects

功能:获取指定组织下的所有项目列表

参数

  • organization:必填,组织ID(UUID格式)

响应

  • 成功(200):返回ProjectCollection类型数据
  • 错误:可能返回403(无权限)、404(组织不存在)

使用场景:在用户界面展示组织下的所有项目时调用

2. 创建新项目

端点POST /v1/organization/{organization}/projects

功能:在指定组织下创建新项目

参数

  • organization:必填,组织ID(UUID格式)
  • 请求体:
    • name:必填,项目名称(string)
    • color:必填,项目颜色标识(string)

响应

  • 成功(200):返回新创建的ProjectResource
  • 错误:可能返回403、404或422(验证失败)

示例请求体

{
  "name": "新电商平台开发",
  "color": "#FF5733"
}

3. 获取单个项目详情

端点GET /v1/organization/{organization}/projects/{project}

功能:获取指定项目的详细信息

参数

  • organization:必填,组织ID
  • project:必填,项目ID

响应

  • 成功(200):返回ProjectResource
  • 错误:可能返回403或404

4. 更新项目信息

端点PUT /v1/organization/{organization}/projects/{project}

功能:更新现有项目的信息

参数

  • organization:必填,组织ID
  • project:必填,项目ID
  • 请求体:与创建项目相同

响应:与创建项目类似

5. 删除项目

端点DELETE /v1/organization/{organization}/projects/{project}

功能:删除指定项目

参数

  • organization:必填,组织ID
  • project:必填,项目ID

响应

  • 成功(204):无内容返回
  • 错误:可能返回403或404

时间记录API详解

1. 获取时间记录列表

端点GET /v1/organization/{organization}/time-entries

功能:获取组织下的时间记录,支持多种过滤条件

参数

  • 路径参数:
    • organization:必填,组织ID
  • 查询参数:
    • user_id:按用户ID过滤
    • before:只返回开始日期早于指定日期的记录(格式:YYYY-MM-DD)
    • after:只返回开始日期晚于指定日期的记录
    • active:只返回活跃记录(无结束时间)
    • limit:限制返回数量(1-500)
    • only_full_dates:只返回完整日期的记录

响应

  • 成功(200):返回TimeEntryCollection
  • 错误:可能返回403、404或422

2. 创建时间记录

端点POST /v1/organization/{organization}/time-entries

功能:创建新的时间记录

参数

  • organization:必填,组织ID
  • 请求体:
    • user_id:必填,用户ID
    • project_id:必填,项目ID
    • start:必填,开始时间(ISO8601格式)
    • end:可选,结束时间
    • description:可选,描述

响应

  • 成功(200):返回创建的时间记录
  • 错误:可能返回403、404或422

技术实现要点

  1. RESTful设计:API严格遵循RESTful原则,使用适当的HTTP方法和状态码

  2. 资源嵌套:项目和时间记录都嵌套在组织下,体现清晰的层级关系

  3. 完善的错误处理:定义了标准的错误响应格式,包括:

    • AuthorizationException(403):权限不足
    • ModelNotFoundException(404):资源不存在
    • ValidationException(422):验证失败
  4. 灵活的查询:时间记录API提供多种过滤选项,满足不同业务场景需求

  5. 类型安全:所有ID都使用UUID格式,避免猜测攻击

最佳实践建议

  1. 认证处理:确保正确处理OAuth2认证流程,获取有效的访问令牌

  2. 错误处理:客户端应妥善处理各种错误响应,提供友好的用户反馈

  3. 分页处理:对于可能返回大量数据的接口(如时间记录),建议配合limit参数实现分页

  4. 数据验证:在调用API前验证输入数据,特别是日期格式和必填字段

  5. 缓存策略:对于不常变动的数据(如项目列表),可考虑适当的缓存机制

通过合理利用这些API接口,开发者可以构建出功能完善的时间管理和项目跟踪应用,与SolidTime系统无缝集成。