Categorias do blog
Lista, cria, altera e apaga as categorias que agrupam os posts.
Listar categorias do blog
Devolve todas as categorias, sem paginação, ordenadas por sort_order e depois por nome.
/api/v1/admin/blog/categoriesAdminLista as categorias do blog
Rota ligada ao módulo blog: com o módulo desligado a resposta é 403. Leitura exige manage_content ou view_content; escrita exige manage_content.
Exemplo de requisição (Listar categorias)
Resposta (Listar categorias)
Campos da resposta
categoriesarrayCategorias.
iduuidnamestringslugstringdescriptionstringparent_iduuidstatusstringA ativa, D inativa.sort_orderintegercreated_atstringupdated_atstringtotalintegerErros (Listar categorias)
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O administrador não tem o privilégio exigido. | {"error":"insufficient privileges","privilege_required_any":["manage_content","view_content"]} |
Criar categoria do blog
Cria uma categoria para agrupar posts. Se o slug já existe, a plataforma acrescenta -2, -3...
/api/v1/admin/blog/categoriesAdminCria uma categoria do blog
Rota ligada ao módulo blog: com o módulo desligado a resposta é 403. Leitura exige manage_content ou view_content; escrita exige manage_content.
Corpo da requisição
namestringobrigatórioslugstringobrigatóriodescriptionstringparent_iduuidstatusstringpadrão: activeactiveinactivesort_orderintegerpadrão: 0descriptionsobjectExemplo de requisição (Criar categoria)
Resposta (Criar categoria)
Campos da resposta
iduuidnamestringslugstringdescriptionstringparent_iduuidstatusstringA ativa, D inativa.sort_orderintegercreated_atstringupdated_atstringErros (Criar categoria)
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O administrador não tem o privilégio exigido. | {"error":"insufficient privileges","required":"manage_content"} |
| 400 | Corpo inválido, ou falta name ou slug. | {"error":"name and slug are required"} |
| 500 | Falha ao gravar (por exemplo parent_id inexistente). | {"error":"failed to create blog category","detail":"..."} |
Atualizar categoria
Atualiza só os campos enviados. Mudar o status para inactive grava a letra D. Um slug já usado por outra categoria é recusado.
/api/v1/admin/blog/categories/{id}AdminAltera campos de uma categoria
Rota ligada ao módulo blog: com o módulo desligado a resposta é 403. Leitura exige manage_content ou view_content; escrita exige manage_content.
Parâmetros de caminho
iduuidobrigatórioCorpo da requisição
namestringslugstringdescriptionstringparent_iduuidstatusstringactiveinactivesort_orderintegerExemplo de requisição (Atualizar categoria)
Resposta (Atualizar categoria)
Campos da resposta
iduuidnamestringslugstringdescriptionstringparent_iduuidstatusstringA ativa, D inativa.sort_orderintegercreated_atstringupdated_atstringErros (Atualizar categoria)
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O administrador não tem o privilégio exigido. | {"error":"insufficient privileges","required":"manage_content"} |
| 500 | Categoria inexistente, slug repetido, ou id que não é UUID. Todos respondem 500. | {"error":"failed to update blog category","detail":"blog category slug \"guia\" already in use"} |
Apagar categoria
Remove a categoria de vez. Confira antes quais posts a usam, porque a exclusão é definitiva.
/api/v1/admin/blog/categories/{id}AdminApaga uma categoria do blog
Rota ligada ao módulo blog: com o módulo desligado a resposta é 403. Leitura exige manage_content ou view_content; escrita exige manage_content.
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição (Apagar categoria)
Resposta (Apagar categoria)
Erros (Apagar categoria)
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O administrador não tem o privilégio exigido. | {"error":"insufficient privileges","required":"manage_content"} |
| 500 | A categoria não existe, o id não é UUID, ou o banco recusou a exclusão. | {"error":"failed to delete blog category","detail":"blog category not found"} |