Documentação da API

Com a StructCMS, você pode criar e consumir APIs dinâmicas baseadas nas coleções definidas por você.

Autenticação

Obtenha um token de acesso para consumir as rotas protegidas por login.

POST/auth/login

Body:

{
  "email": "usuario@email.com",
  "password": "suasenha"
}

Exemplo de resposta:

{
  "token": "jwt-token-aqui"
}

Listar Projetos

Retorna todos os projetos do usuário autenticado.

GET/projects

Headers:

{
  "Authorization": "Bearer seu-token"
}

Exemplo de resposta:

[{
  "_id": "id-do-projeto",
  "name": "Meu Projeto",
  "apiToken": "token-da-api"
}]

Criar Coleção

Cria uma nova coleção vinculada a um projeto.

POST/collections/:projectId

Headers:

{
  "Authorization": "Bearer seu-token"
}

Body:

{
  "name": "clientes",
  "fields": [
    { "name": "nome", "type": "string" },
    { "name": "email", "type": "string" }
  ],
  "auth": true
}

Exemplo de resposta:

{
  "_id": "id-da-colecao",
  "name": "clientes"
}

Listar Itens da Coleção (API Pública)

Retorna os itens de uma coleção. Rota pública.

GET/api/:projectId/:collectionName

Exemplo de resposta:

[
  { "_id": "id", "nome": "João" },
  { "_id": "id", "nome": "Maria" }
]

Buscar Item por ID (API Pública)

Retorna um item específico da coleção. Rota pública.

GET/api/:projectId/:collectionName/:id

Exemplo de resposta:

{
  "_id": "id",
  "nome": "João",
  "email": "joao@email.com"
}

Criar Item (API Pública)

Adiciona um novo item à coleção. Requer x-api-token.

POST/api/:projectId/:collectionName

Headers:

{
  "x-api-token": "token-do-projeto"
}

Body:

{
  "nome": "João",
  "email": "joao@email.com"
}

Exemplo de resposta:

{
  "_id": "id-gerado",
  "nome": "João",
  "email": "joao@email.com"
}

Atualizar Item (API Pública)

Atualiza um item da coleção. Requer x-api-token.

PUT/api/:projectId/:collectionName/:id

Headers:

{
  "x-api-token": "token-do-projeto"
}

Body:

{
  "nome": "João da Silva"
}

Exemplo de resposta:

{
  "_id": "id",
  "nome": "João da Silva",
  "email": "joao@email.com"
}

Deletar Item (API Pública)

Remove um item da coleção. Requer x-api-token.

DELETE/api/:projectId/:collectionName/:id

Headers:

{
  "x-api-token": "token-do-projeto"
}

Exemplo de resposta:

{
  "message": "Item removido com sucesso"
}