Projetos
Gerenciamento de projetos no Decision Engine.
Endpoints
| Método | Endpoint | Descrição | Permissão |
|---|---|---|---|
| POST | /api/v1/projects | Criar projeto | DECISION_PROJECTS_CREATE |
| GET | /api/v1/projects | Listar projetos | DECISION_PROJECTS_READ |
| GET | /api/v1/projects/:id | Obter projeto | DECISION_PROJECTS_READ |
| PATCH | /api/v1/projects/:id | Atualizar projeto | DECISION_PROJECTS_UPDATE |
| DELETE | /api/v1/projects/:id | Excluir projeto | DECISION_PROJECTS_DELETE |
Criar Projeto
POST /api/v1/projects
Cria um novo projeto para agrupar decisões.
Request
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Nome do projeto (1-255 chars) |
key | string | Sim | Chave unica (lowercase, hifens) |
description | string | Não | Descrição do projeto |
- cURL
- JavaScript
curl -X POST 'https://decision-engine.stg.catalisa.app/api/v1/projects' \
-H 'Authorization: Bearer SEU_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"name": "Analise de Crédito Pessoal",
"key": "credit-analysis-personal",
"description": "Regras de aprovação para empréstimo pessoal"
}'
const response = await fetch('https://decision-engine.stg.catalisa.app/api/v1/projects', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'Analise de Crédito Pessoal',
key: 'credit-analysis-personal',
description: 'Regras de aprovação para empréstimo pessoal',
}),
});
const project = await response.json();
Response (201 Created)
{
"data": {
"type": "projects",
"id": "550e8400-e29b-41d4-a716-446655440000",
"attributes": {
"name": "Analise de Crédito Pessoal",
"key": "credit-analysis-personal",
"description": "Regras de aprovação para empréstimo pessoal",
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T10:30:00Z"
},
"links": {
"self": "/api/v1/projects/550e8400-e29b-41d4-a716-446655440000"
}
}
}
Listar Projetos
GET /api/v1/projects
Lista projetos com suporte a paginação.
Query Parameters
| Parâmetro | Tipo | Descrição |
|---|---|---|
page[number] | integer | Número da página |
page[size] | integer | Itens por página |
- cURL
- JavaScript
curl 'https://decision-engine.stg.catalisa.app/api/v1/projects' \
-H 'Authorization: Bearer SEU_TOKEN'
const response = await fetch('https://decision-engine.stg.catalisa.app/api/v1/projects', {
headers: {
'Authorization': `Bearer ${token}`,
},
});
const { data, meta } = await response.json();
Response (200 OK)
{
"data": [
{
"type": "projects",
"id": "550e8400-e29b-41d4-a716-446655440000",
"attributes": {
"name": "Analise de Crédito Pessoal",
"key": "credit-analysis-personal"
}
}
],
"meta": {
"totalItems": 5,
"totalPages": 1,
"currentPage": 1
}
}
Obter Projeto
GET /api/v1/projects/:projectId
Obtém detalhes de um projeto específico.
- cURL
- JavaScript
curl 'https://decision-engine.stg.catalisa.app/api/v1/projects/550e8400-e29b-41d4-a716-446655440000' \
-H 'Authorization: Bearer SEU_TOKEN'
const projectId = '550e8400-e29b-41d4-a716-446655440000';
const response = await fetch(
`https://decision-engine.stg.catalisa.app/api/v1/projects/${projectId}`,
{
headers: {
'Authorization': `Bearer ${token}`,
},
}
);
const project = await response.json();
Atualizar Projeto
PATCH /api/v1/projects/:projectId
Atualiza dados de um projeto.
Request
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Não | Novo nome |
description | string | Não | Nova descrição |
- cURL
- JavaScript
curl -X PATCH 'https://decision-engine.stg.catalisa.app/api/v1/projects/550e8400-e29b-41d4-a716-446655440000' \
-H 'Authorization: Bearer SEU_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"name": "Analise de Crédito Pessoal v2",
"description": "Regras atualizadas de aprovação"
}'
const projectId = '550e8400-e29b-41d4-a716-446655440000';
const response = await fetch(
`https://decision-engine.stg.catalisa.app/api/v1/projects/${projectId}`,
{
method: 'PATCH',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'Analise de Crédito Pessoal v2',
description: 'Regras atualizadas de aprovação',
}),
}
);
const project = await response.json();
Excluir Projeto
DELETE /api/v1/projects/:projectId
Remove um projeto e todas as suas decisões.
Atenção
Esta operação e irreversível. Todas as decisões e versões do projeto serão removidas.
- cURL
- JavaScript
curl -X DELETE 'https://decision-engine.stg.catalisa.app/api/v1/projects/550e8400-e29b-41d4-a716-446655440000' \
-H 'Authorization: Bearer SEU_TOKEN'
const projectId = '550e8400-e29b-41d4-a716-446655440000';
const response = await fetch(
`https://decision-engine.stg.catalisa.app/api/v1/projects/${projectId}`,
{
method: 'DELETE',
headers: {
'Authorization': `Bearer ${token}`,
},
}
);
// Status 204 No Content = sucesso
Response (204 No Content)
Sem corpo de resposta.
Erros Comuns
| Código | Erro | Descrição |
|---|---|---|
| 400 | VALIDATION | Key invalida ou campos ausentes |
| 404 | NOT_FOUND | Projeto não encontrado |
| 409 | CONFLICT | Key já existe |