Listagem de Comentários
/products/comments
Retorna lista paginada de comentários de produtos
Descrição
Endpoint responsável por retornar todos os comentários referentes a produtos 💬🛍️.
Trata-se de um endpoint em contexto administrativo, permitindo que o lojista visualize e gerencie os comentários relacionados aos seus produtos.
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/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}Cadastro de comentário
/products/comments
Possibilita o usuário de cadastrar um comentário
Descrição
Endpoint responsável por permitir que um usuário administrador responda perguntas de clientes sobre um produto.
Trata-se de uma rota de contexto administrativo, utilizada para interação oficial do lojista com os clientes dentro da página do produto.
Parâmetros
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Content-Type | application/json | Tipo de conteúdo |
Authorization | Bearer {userToken} | Token de autenticação |
Parâmetros do Corpo
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
parentCommentId | integer | ✅ | identificador do comentário pai (comentário a ser respondido) |
message | string | ✅ | Mensagem de resposta do lojista |
Exemplo de Requisição
1curl --request POST \2 --url {{MAIN_URL}}/products/comments \3 --header "Authorization: Bearer SEU_TOKEN_AQUI" \4 --data '{5 "parentCommentId": 1,6 "message": "Sim, vem com capinha. É o último em estoque, garanta o seu já!"7 }'✅ Resposta de Sucesso
HTTP Status: 200 OK
1{2 "id": 1,3 "productId": 1,4 "parentCommentId": 1,5 "customerId": 0,6 "customerName": "",7 "customerEmail": "",8 "userId": 1,9 "userName": "Admin uappi",10 "userEmail": "lojista@email.com",11 "message": "Sim, vem com capinha. É o último em estoque, garanta o seu já!",12 "replyByUser": false,13 "active": true,14 "totalReplies": 0,15 "product": null,16 "createdAt": "2026-02-12 16:22:08",17 "updatedAt": "2026-02-12 16:22:08"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. |
Atualização de comentário
/products/comments/{commentId}
Possibilita o usuário de atualizar um comentário
Descrição
Endpoint responsável por permitir que um usuário administrador atualize uma resposta feita para um cliente sobre um produto.
Trata-se de uma rota de contexto administrativo, utilizada para interação oficial do lojista com os clientes dentro da página do produto.
Parâmetros de query
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Content-Type | application/json | Tipo de conteúdo |
Authorization | Bearer {token} | Token de autenticação |
Parâmetros do Corpo
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
replyByUser | boolean | ❌ | Define se o comentário já foi respondido por um usuário |
active | boolean | ✅ | Status de ativação do comentário |
message | string | ✅ | Mensagem de resposta do lojista |
Exemplo de Requisição
1curl --request PUT \2 --url {{MAIN_URL}}/products/comments/{commentId} \3 --header "Authorization: Bearer SEU_TOKEN_AQUI" \4 --data '{5 "replyByUser": true,6 "active": true,7 "message": "Sim, vem com capinha. É o último em estoque, garanta o seu já!"8 }'✅ Resposta de Sucesso
HTTP Status: 200 OK
1{2 "id": 1,3 "productId": 1,4 "parentCommentId": 1,5 "customerId": 0,6 "customerName": "",7 "customerEmail": "",8 "userId": 1,9 "userName": "Admin uappi",10 "userEmail": "lojista@email.com",11 "message": "Sim, vem com capinha. É o último em estoque, garanta o seu já!",12 "replyByUser": true,13 "active": true,14 "totalReplies": 0,15 "product": null,16 "createdAt": "2026-02-12 16:22:08",17 "updatedAt": "2026-02-12 16:22:08"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. |
Exclusão de comentário
/products/comments/{commentId}
Permite que um usuário exclua um comentário
Descrição
Endpoint responsável por permitir que o usuário administrador remova uma resposta previamente enviada a um cliente 🗑️💬.
Trata-se de uma rota de contexto administrativo, garantindo que apenas usuários autorizados possam excluir respostas realizadas no ambiente do produto.
Parâmetros de query
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {token} | Token de autenticação |
Parâmetros da URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| commentId | integer | Sim | ID único de comentário |
Exemplo de Requisição
1curl --request DELETE \2 --url {{MAIN_URL}}/products/comments/{commentId} \3 --header "Authorization: Bearer SEU_TOKEN_AQUI" \✅ Resposta de Sucesso
HTTP Status: 200 OK
1true