Como usar o Public SDK
O SDK foi projetado para ser simples e direto no uso.
Você pode consumir dados utilizando dois módulos principais:
Api→ consumo simplesTracking→ consumo + eventos- Eventos são enviados automaticamente para o GA4 (
dataLayer) - Eventos também são enviados ao Facebook Pixel, quando o
fbqestá carregado na página - A interação do usuário passa a ser monitorada
- Nenhuma configuração adicional é necessária
- Prefira Tracking em áreas estratégicas (home, produto, checkout)
- Utilize Api para dados internos ou não relevantes para tracking
- Sempre trate erros com .catch()
- Tipar as respostas melhora a manutenção
---
📦 Exemplo com Api
1import { Api, type ApiTypes } from '@uappi/public-sdk';2import { ref, onMounted } from 'vue';34const banners = ref<ApiTypes.Banners | null>(null);56onMounted(async () => {7 banners.value = await Api.customization8 .listBanners('home')9 .catch(() => null);10});📊 Exemplo com Tracking (GA4 e Facebook Pixel)
Use quando você quer monitorar o comportamento do usuário.
1import { Tracking, type ApiTypes } from '@uappi/public-sdk';2import { ref, onMounted } from 'vue';34const banners = ref<ApiTypes.Banners | null>(null);56onMounted(async () => {7 banners.value = await Tracking.customization8 .listBanners('my-banner')9 .catch(() => null);10});⚖️ Quando usar Api vs Tracking
| Cenário | Módulo |
|---|---|
| Apenas consumir dados | Api |
| Monitorar comportamento | Tracking |
💡 O que muda na prática?
Ao utilizar Tracking:
Exemplo prático:
Api.customization.listBanners → apenas retorna os banners
Tracking.customization.listBanners → retorna os banners + dispara evento view_promotion
❗ Tratamento de erros
Quando a API responde com erro, a Promise é rejeitada com um objeto ApiError:
1interface ApiError {2 message: string; // mensagem retornada pela API3 errorCode: ApiErrorData['errorCode']; // ex: 'NOT_FOUND', 'UAPPI_STORE_ORDER_PAYMENT_CODE_EXPIRED'4 status: number; // status HTTP5}O errorCode é uma união tipada, então é possível tratar cada caso sem comparar strings soltas:
1import { Api, type ApiTypes } from '@uappi/public-sdk';23try {4 await Api.order.detailOrderPaymentCode(code);5} catch (e) {6 const error = e as ApiTypes.ApiError;78 if (error.errorCode === 'UAPPI_STORE_ORDER_PAYMENT_CODE_EXPIRED') {9 // link de pagamento expirado10 }11}