Como funcionam os IDs globais Relay na Storefront API.
Todos os objetos da API que possuem um campo id usam IDs globais Relay. Cada ID é uma string base64 que codifica o tipo do objeto e seu identificador interno.
Um Global ID é uma string base64 no formato Tipo:uuid. Por exemplo:
| Global ID (base64) | Decodificado | Tipo |
|---|---|---|
UHJvZHVjdDphYmMxMjM= | Product:abc123 | Product |
T3JkZXI6ZGVmNDU2 | Order:def456 | Order |
Q2F0ZWdvcnk6Z2hpNzg5 | Category:ghi789 | Category |
Use a query product para buscar um produto pelo seu Global ID, ou products para buscar múltiplos.
Para decodificar um Global ID no frontend:
// Apenas para debugging
const globalId = "UHJvZHVjdDphYmMxMjM=";
const decoded = atob(globalId);
console.log(decoded);
// → "Product:abc123"
const [type, id] = decoded.split(":");
console.log(type); // "Product"
console.log(id); // "abc123" query GetProduct($id: ID!) {
product(id: $id) {
id
title
price
images { url }
}
} query GetProducts($ids: [ID!]!) {
products(ids: $ids) {
id
title
price
}
} {
"id": "UHJvZHVjdDphYmMxMjM=",
"ids": [
"UHJvZHVjdDphYmMxMjM=",
"UHJvZHVjdDpkZWY0NTY="
]
}