Listagem de Comentários
/publics/products/comments
Retorna lista paginada de comentários ativos de produtos
Descrição
Endpoint responsável por retornar todos os comentários referentes a produtos 💬🛍️.
O controle da filtragem é realizado pelo frontend, que pode aplicar condições na requisição.
Para buscar os comentários de um produto específico, deve-se forçar a condição pelo id do produto.
Parâmetros de Query
Campos de Condição Disponíveis
| Campo | Tipo | Descrição |
|---|---|---|
| parentCommentId | integer | identificador do comentário pai (comentário que foi respondido) |
| productId | integer | identificador único do produto |
| userId | integer | identificador único do usuário |
| userName | string | nome do usuário |
| userEmail | string | e-mail do usuário |
| customerId | integer | identificador único do cliente |
| customerName | string | nome do cliente |
| customerEmail | string | e-mail do cliente que realizou o comentário |
| replyByUser | boolean | define se foi respondido por um usuário |
| active | boolean | status de ativação do comentário |
| createdAt | string | data de cadastro do comentário |
Campos de Ordenação Disponíveis
| Campo | Descrição |
|---|---|
| productId | Ordernar por identificador único de produto |
| userId | Ordernar por identificador único de usuário |
|---|---|
| userEmail | Ordernar por e-mail de usuário |
| customerId | Ordernar por identificador único de cliente |
| customerName | Ordernar por nome de cliente |
|---|---|
| createdAt | Ordernar pela data de cadastro do comentário |
Exemplo de Requisição
1curl --request GET \2 --url https://sua-loja-uappi.com.br/api/v3/publics/products/comments \✅ Resposta de Sucesso
1{2 "registers": [3 {4 "id": 101,5 "productId": 1234,6 "parentCommentId": null,7 "customerId": 567,8 "customerName": "João Silva",9 "customerEmail": "joao.silva@email.com",10 "userId": null,11 "userName": "",12 "userEmail": "",13 "message": "Produto excelente! Superou minhas expectativas. Entrega rápida e embalagem perfeita.",14 "replyByUser": false,15 "active": true,16 "totalReplies": 1,17 "product": {18 "id": 1234,19 "brandId": 1234,20 "brandName": "TopPhone,21 "mainCategoryId": 1,22 "mainCategoryName": "smartphone",23 "type": "product",24 "name": "Smartphone XYZ Pro 128GB",25 "sku": "SMPH001",26 "url": "/smartphone-xyz-pro-128gb",27 "comparisonPrice":2199.99,28 "stock":20,29 "medias":[30 {31 "id": 123,32 "type": "image",33 "title": "",34 "alternativeText": null,35 "file": "\/upload\/media\/produto-media.webp",36 "originalFile": "\/upload\/media\/produto-media.png",37 "size": null,38 "originalSize": null,39 "width": null,40 "height": null,41 "url": null42 }43 ],44 "combination":[1, 2, 3],45 "currentAttributes":[46 {47 "id":123,48 "name":"cor",49 "value":{50 "id":123,51 "label":"azul-escuro",52 "image":null,53 "originalImage":null,54 "color":"#00008B",55 "order":156 }57 }58 ],59 "active": true60 },61 "createdAt": "2024-04-08 10:30:00",62 "updatedAt": "2024-04-08 10:30:00"63 },64 {65 "id": 102,66 "productId": 1234,67 "parentCommentId": 101,68 "customerId": null,69 "customerName": "",70 "customerEmail": "",71 "userId": 25,72 "userName": "Suporte TechStore",73 "userEmail": "suporte@techstore.com.br",74 "message": "Olá João! Muito obrigado pelo feedback positivo.",75 "replyByUser": true,76 "active": true,77 "totalReplies": 0,78 "product": null,79 "createdAt": "2024-04-08T14:15:00Z",80 "updatedAt": "2024-04-08T14:15:00Z"81 }82 ],83 "pagination": {84 "limit": 10,85 "offset": 0,86 "pages": 5,87 "registers": 4788 }89}Criar Comentário no Produto
/publics/products/{productId}/comments
Cria comentário ou resposta em produto específico
Descrição
Endpoint responsável por permitir que um cliente crie comentários em um produto 💬🛍️.
Possibilita que o cliente envie opiniões, faça perguntas ao lojista ou interaja com outros clientes, promovendo maior engajamento e transparência na página do produto.
Este endpoint não requer autenticação.
No entanto, caso o cliente esteja autenticado, ele será identificado por meio do token e o comentário será automaticamente associado ao seu cadastro.
Parâmetros de Query
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Content-Type | application/json | Tipo de conteúdo |
Parâmetros da URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| productId | integer | Sim | ID único do produto |
Parâmetros do Body
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| message | string | Sim | Mensagem do comentário |
| parentCommentId | integer | Não | ID do comentário pai (para respostas) |
| customerName | string | Condicional | Nome do cliente (obrigatório se não autenticado, mínimo 3 caracteres) |
| customerEmail | string | Condicional | Email do cliente (obrigatório se não autenticado, formato válido) |
Exemplo de Requisição
1curl --request POST \2 --url {{MAIN_URL}}/publics/products/{productId}/comments \3 --data '{4 "message": "Esse celular vem com carregador?",5 "parentCommentId": "1",6 "customerName": "jose",7 "customerEmail": "jose@exemplo.com"8 }'✅ Resposta de Sucesso
1{2 "id": 1,3 "productId": 1234,4 "parentCommentId": null,5 "customerId": 567,6 "customerName": "João Silva",7 "customerEmail": "joao.silva@email.com",8 "userId": null,9 "userName": "",10 "userEmail": "",11 "message": "Produto excelente! Superou minhas expectativas. Recomendo!",12 "replyByUser": false,13 "active": true,14 "totalReplies": 0,15 "product": null,16 "createdAt": "2024-04-10T15:30:00Z",17 "updatedAt": "2024-04-10T15:30:00Z"18}⚠️ Possíveis erros:
Atenção: a seguir estão destacados os principais erros que podem ocorrer neste endpoint.
Os cenários descritos representam os erros mais relevantes do contexto atual, servindo como referência para entendimento e tratamento das falhas.
| Código Interno | Código Http | Descrição |
|---|---|---|
| UAPPI_STORE_COMMENT_NOT_FOUND | 404 | O comentário solicitado não foi encontrado. |
| UAPPI_STORE_PRODUCT_NOT_FOUND | 404 | O produto solicitado não foi encontrado. |