Asana 基于 Asana REST API,实现 IProjectManagementService 统一接口。
包信息
| 项 | 值 |
|---|---|
| NuGet 包 | Bitzsoft.Integrations.ProjectManagement.Asana |
| 实现接口 | IProjectManagementService |
| Provider ID | asana |
| 鉴权方式 | Personal Access Token Bearer(Authorization: Bearer {token}) |
| 默认 BaseUrl | https://app.asana.com/api/1.0 |
| 区域 | Global |
凭据在 Asana 开发者控制台创建后获取。
配置字段
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
PersonalAccessToken | string | 是 | — | Personal Access Token(Bearer 凭据) |
BaseUrl | string | 否 | https://app.asana.com/api/1.0 | Asana API 基地址 |
HttpClientName | string | 否 | ProjectManagementAsana | 业务 HttpClient 命名 |
配置 JSON 示例
{ "ProjectManagement": { "Asana": { "PersonalAccessToken": "2/xxxxxxxxxxxxxxxxxxxxxxxx", "BaseUrl": "https://app.asana.com/api/1.0" } }}DI 注册
// 从配置节注册(默认节名 ProjectManagement:Asana)services.AddAsanaProjectManagement(configuration);
// 或用回调单独配置services.AddAsanaProjectManagement(options =>{ options.PersonalAccessToken = "2/xxxxxxxxxxxxxxxxxxxxxxxx"; options.BaseUrl = "https://app.asana.com/api/1.0";});使用示例
public class TaskService{ private readonly IProjectManagementService _pm;
public TaskService(IProjectManagementService pm) => _pm = pm;
public Task<PmTask> CreateAsync(string projectId, string name) => _pm.CreateTaskAsync(new CreateTaskRequest { ProjectId = projectId, Name = name });
public Task<PmResult> CompleteAsync(string taskId) => _pm.CompleteTaskAsync(taskId);}依赖
| 包 | 说明 |
|---|---|
Bitzsoft.Integrations.ProjectManagement | 项目管理服务抽象层 |
Bitzsoft.Integrations.Core | 公共基座 |
已知限制
- PAT 为长期凭据,请妥善保管;过期需在 Asana 重新生成。