Expand description
Cliente completo da API ClickUp
Este crate fornece uma interface tipo-segura e ergonômica para interagir com a API do ClickUp, incluindo funcionalidades avançadas como:
- Smart folder finder (busca fuzzy de folders)
- Smart assignee finder (busca fuzzy de assignees)
- Custom fields manager (gerenciamento de campos personalizados)
- Fuzzy matching utilities (normalização e comparação de strings)
§API ClickUp v2
Este crate utiliza exclusivamente a API v2 do ClickUp que é estável e suporta todos os recursos necessários:
- Spaces:
/team/{team_id}/space - Folders:
/space/{space_id}/folder - Lists:
/folder/{folder_id}/list - Tasks:
/list/{list_id}/task,/team/{team_id}/task - Custom Fields:
/list/{list_id}/field - Webhooks:
/team/{team_id}/webhook - Attachments: Endpoints de upload/download
§Nomenclatura
O crate usa a nomenclatura workspace_id para consistência conceitual:
- ✅
workspace_id(internamente, mas mapeado parateam_idna API v2) - ✅ Variáveis de ambiente:
CLICKUP_WORKSPACE_ID(com fallback paraCLICKUP_TEAM_ID)
§Exemplo Básico
ⓘ
use clickup::{ClickUpClient, folders::SmartFolderFinder};
#[tokio::main]
async fn main() -> clickup::Result<()> {
// IMPORTANTE: Ler de variáveis de ambiente (NUNCA hardcode!)
let api_token = std::env::var("CLICKUP_API_TOKEN")
.expect("CLICKUP_API_TOKEN não configurado");
let workspace_id = std::env::var("CLICKUP_WORKSPACE_ID")
.expect("CLICKUP_WORKSPACE_ID não configurado");
let client = ClickUpClient::new(api_token)?;
// Usa internamente "workspace_id" mas chama API v2
let mut finder = SmartFolderFinder::new(client, workspace_id);
let result = finder.find_folder_for_client("Nexcode").await?;
Ok(())
}Re-exports§
pub use client::ClickUpClient;pub use client::CreateListRequest;pub use client::ListInfo;pub use error::ClickUpError;pub use error::Result;pub use types::Assignee;pub use types::CustomField;pub use types::CustomFieldValue;pub use types::Priority;pub use types::Status;pub use types::Task;pub use types::TaskBuilder;pub use types::User;