ONES 基于 ONES REST API v2,实现 IProjectManagementService 统一接口。
包信息
| 项 | 值 |
|---|---|
| NuGet 包 | Bitzsoft.Integrations.ProjectManagement.Ones |
| 实现接口 | IProjectManagementService |
| Provider ID | ones |
| 鉴权方式 | 用户 token 登录认证(email + password 换 token,之后 Bearer 头) |
| 默认 BaseUrl | https://your-tenant.ones.ai(工作区基地址) |
| 区域 | CN |
工作区基地址形如 https://{tenant}.ones.ai。若已持有 UserToken 可直接填入,跳过登录换取流程。
配置字段
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
Email | string | 是 | — | ONES 登录邮箱 |
Password | string | 是 | — | ONES 登录密码 |
UserToken | string? | 否 | — | 用户 token(已持有时可直接填,跳过登录换取) |
BaseUrl | string | 是 | https://your-tenant.ones.ai | ONES 工作区基地址 |
HttpClientName | string | 否 | ProjectManagementOnes | 业务 HttpClient 命名 |
配置 JSON 示例
{ "ProjectManagement": { "Ones": { "Email": "user@example.com", "Password": "your-password", "BaseUrl": "https://your-tenant.ones.ai" } }}DI 注册
// 从配置节注册(默认节名 ProjectManagement:Ones)services.AddOnesProjectManagement(configuration);
// 或用回调单独配置services.AddOnesProjectManagement(options =>{ options.Email = "user@example.com"; options.Password = "your-password"; options.BaseUrl = "https://your-tenant.ones.ai";});使用示例
public class WorkItemService{ private readonly IProjectManagementService _pm;
public WorkItemService(IProjectManagementService pm) => _pm = pm;
public Task<PmTask> CreateAsync(string projectId, string title) => _pm.CreateTaskAsync(new CreateTaskRequest { ProjectId = projectId, Name = title });
public Task<PmResult> UpdateAsync(string taskId, string newTitle) => _pm.UpdateTaskAsync(new UpdateTaskRequest { TaskId = taskId, Name = newTitle });}依赖
| 包 | 说明 |
|---|---|
Bitzsoft.Integrations.ProjectManagement | 项目管理服务抽象层 |
Bitzsoft.Integrations.Core | 公共基座 |
已知限制
- 默认用 email + password 登录换 token;若已持有 UserToken 填入可跳过换取流程。