Comentários do blog
Lista e modera os comentários dos leitores: aprovar, rejeitar ou apagar.
Listar comentários
Devolve os comentários de todos os posts, do mais novo para o mais antigo. Comentários novos entram como pending e só aparecem na vitrine depois de aprovados.
/api/v1/admin/blog/commentsAdminLista os comentários dos posts para moderação
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 consulta
post_iduuidstatusstringpendingapprovedrejectedpageintegerpadrão: 1limitintegerpadrão: 20Exemplo de requisição (Listar comentários)
curl "$BASE_URL/api/v1/admin/blog/comments?status=pending" \
-H "Authorization: Bearer $TOKEN"Resposta (Listar comentários)
{
"items": [
{
"id": "7d1b6f0a-3a8e-4b8f-9d71-6b0e0b3a9c11",
"post_id": "91af684b-cf41-4243-a37d-a133a39d6ed3",
"post_title": "Como escolher o mouse perfeito",
"user_id": "3093f506-d6af-4c27-9ef6-c245e8e602f9",
"user_name": "Maria Souza",
"user_email": "maria.souza@example.com",
"body": "Ótimo guia!",
"status": "pending",
"ip_address": "203.0.113.10",
"created_at": "2026-10-10T14:00:00Z",
"updated_at": "2026-10-10T14:00:00Z"
}
],
"total": 1,
"page": 1,
"limit": 20
}Campos da resposta
itemsarrayComentários da página.
iduuidpost_iduuidpost_titlestringuser_iduuiduser_namestringuser_emailstringbodystringstatusstringpending, approved ou rejected.ip_addressstringcreated_atstringupdated_atstringtotalintegerpageintegerlimitintegerErros (Listar comentários)
| 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"]} |
Aprovar comentário
Marca o comentário como approved, e ele passa a aparecer na vitrine. Não precisa de corpo.
/api/v1/admin/blog/comments/{id}/approveAdminAprova um comentário
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 (Aprovar)
curl -X PUT "$BASE_URL/api/v1/admin/blog/comments/7d1b6f0a-3a8e-4b8f-9d71-6b0e0b3a9c11/approve" \
-H "Authorization: Bearer $TOKEN"Resposta (Aprovar)
{
"id": "7d1b6f0a-3a8e-4b8f-9d71-6b0e0b3a9c11",
"post_id": "91af684b-cf41-4243-a37d-a133a39d6ed3",
"post_title": "Como escolher o mouse perfeito",
"user_id": "3093f506-d6af-4c27-9ef6-c245e8e602f9",
"user_name": "Maria Souza",
"user_email": "maria.souza@example.com",
"body": "Ótimo guia!",
"status": "approved",
"ip_address": "203.0.113.10",
"created_at": "2026-10-10T14:00:00Z",
"updated_at": "2026-10-10T14:00:00Z"
}Erros (Aprovar)
| 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"} |
| 404 | Não existe comentário com esse id. | {"error":"comment not found"} |
Rejeitar comentário
Marca o comentário como rejected: ele deixa de aparecer na vitrine, mas continua guardado. Dá para aprovar de novo depois.
/api/v1/admin/blog/comments/{id}/rejectAdminRejeita um comentário
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 (Rejeitar)
curl -X PUT "$BASE_URL/api/v1/admin/blog/comments/7d1b6f0a-3a8e-4b8f-9d71-6b0e0b3a9c11/reject" \
-H "Authorization: Bearer $TOKEN"Resposta (Rejeitar)
{
"id": "7d1b6f0a-3a8e-4b8f-9d71-6b0e0b3a9c11",
"post_id": "91af684b-cf41-4243-a37d-a133a39d6ed3",
"post_title": "Como escolher o mouse perfeito",
"user_id": "3093f506-d6af-4c27-9ef6-c245e8e602f9",
"user_name": "Maria Souza",
"user_email": "maria.souza@example.com",
"body": "Ótimo guia!",
"status": "rejected",
"ip_address": "203.0.113.10",
"created_at": "2026-10-10T14:00:00Z",
"updated_at": "2026-10-10T14:00:00Z"
}Erros (Rejeitar)
| 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"} |
| 404 | Não existe comentário com esse id. | {"error":"comment not found"} |
Apagar comentário
Remove o comentário de vez. Para apenas escondê-lo, prefira rejeitar.
/api/v1/admin/blog/comments/{id}AdminApaga um comentário
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)
curl -X DELETE "$BASE_URL/api/v1/admin/blog/comments/7d1b6f0a-3a8e-4b8f-9d71-6b0e0b3a9c11" \
-H "Authorization: Bearer $TOKEN"Resposta (Apagar)
{
"message": "comment deleted"
}Erros (Apagar)
| 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"} |
| 404 | Não existe comentário com esse id. | {"error":"comment not found"} |