API Reference
Notas são documentos rich-text editados com o Tiptap. O conteúdo é armazenado no formato JSON do Tiptap e suporta links entre notas via linkedTo / linkedFrom.
GET /api/notes
Retorna todas as notas do workspace (metadados, sem conteúdo completo).
Resposta 200
{
id: string;
title: string;
icon: string | null;
collectionId: string | null;
createdAt: string;
updatedAt: string;
}[]
POST /api/notes
Cria uma nova nota com conteúdo vazio.
Corpo da requisição
| Campo | Tipo | Descrição |
|---|---|---|
title* | string | Título da nota |
icon | string | Emoji ou identificador de ícone |
collectionId | string | ID da coleção de notas |
Resposta 201
{
message: "Note created successfully";
note: {
id: string;
title: string;
icon: string | null;
collectionId: string | null;
content: { type: "doc"; content: [] }; // Tiptap JSON inicial
userId: string;
workspaceId: string;
createdAt: string;
updatedAt: string;
};
}
GET /api/notes/[id]
Retorna uma nota completa com conteúdo e links.
Parâmetros de rota
| Parâmetro | Tipo | Descrição |
|---|---|---|
id | string | ID da nota |
Resposta 200
{
id: string;
title: string;
icon: string | null;
content: TiptapNode; // JSON do editor Tiptap
collectionId: string | null;
collection: { id: string; name: string } | null;
linkedTo: { target: { id: string; title: string; icon: string | null } }[];
linkedFrom: { source: { id: string; title: string; icon: string | null } }[];
userId: string;
workspaceId: string;
createdAt: string;
updatedAt: string;
}
PATCH /api/notes/[id]
Atualiza uma nota. Ao alterar o conteúdo, imagens órfãs no S3 são removidas automaticamente.
Parâmetros de rota
| Parâmetro | Tipo | Descrição |
|---|---|---|
id | string | ID da nota |
Corpo da requisição
| Campo | Tipo | Descrição |
|---|---|---|
title | string | Novo título |
icon | string | Novo ícone |
content | object | JSON Tiptap do conteúdo |
collectionId | string | null | ID da coleção (null para remover) |
Resposta 200
{
message: "Note updated successfully";
note: { /* objeto completo da nota */ };
}
DELETE /api/notes/[id]
Remove uma nota e todas as imagens associadas no S3.
Resposta 200
{ message: "Note deleted successfully" }