QUERY
productsListar produtos
Retorna produtos do catálogo com paginação estilo Relay (first + after). Combine com o argumento category para filtrar por coleção. Selecione apenas os campos que a interface realmente usa para reduzir o payload.
Argumentos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| first | Int! | sim | Quantidade de produtos a retornar. Máximo 50. |
| after | String | não | Cursor de paginação retornado em pageInfo.endCursor. |
| category | String | não | Slug da categoria: vestuario, acessorios ou casa. |
| inStock | Boolean | não | Quando true, retorna apenas produtos com estoque disponível. |
Operação
query ListarProdutos($first: Int!, $category: String) { products(first: $first, category: $category, inStock: true) { edges { node { id name slug priceCents stock category { name } } } pageInfo { endCursor hasNextPage } } }
Variables
{
"first": 10,
"category": "vestuario"
}Response
{
"data": {
"products": {
"edges": [
{
"node": {
"id": "prod_c2VydGFv",
"name": "Camiseta Sertão",
"slug": "camiseta-sertao",
"priceCents": 8990,
"stock": 34,
"category": { "name": "Vestuário" }
}
},
{
"node": {
"id": "prod_bWFuZ3Vl",
"name": "Moletom Mangue",
"slug": "moletom-mangue",
"priceCents": 19990,
"stock": 12,
"category": { "name": "Vestuário" }
}
}
],
"pageInfo": {
"endCursor": "Y3Vyc29yOjI=",
"hasNextPage": true
}
}
}
}curl -X POST "https://api.catalogo.dev/graphql" \
-H "Authorization: Bearer $CATALOGO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "query ListarProdutos($first: Int!) { products(first: $first) { edges { node { id name priceCents } } } }",
"variables": { "first": 10 }
}'