Ir para a documentação
SparkGlimSparkGlim Programadores
Pesquisar em toda a documentação

Experimente um tema na sua língua ou um caminho API exato.

    Guias de integração

    Criar um diretório público de campanhas reais

    Leia o endpoint no servidor, exponha uma resposta limitada e ligue ao percurso verdadeiro.

    Antes de começar

    • Node 20+ com fetch, Python 3 com urllib ou PHP com cURL e JSON no servidor.
    • Origem HTTPS do Server e país realmente disponível; esta leitura não exige segredos de conta.
    • Interface que apresente texto com segurança e trate resultados vazios ou indisponíveis.
    01

    Escolher um tipo explícito

    GET /api/public/homepage/discovery aceita type=all|ticketing|voting|donation, country, q, location, status, date, sort, page e limit. O exemplo lê bilhética do Gana e não ativa pagamentos.

    Fixe o destino HTTPS no servidor. Verifique estado HTTP e success com um tempo máximo.

    Pedido ilustrativo com valores de exemplo
    typescript
    export async function readPublicCampaigns() {
      const url = new URL('/api/public/homepage/discovery', 'https://api.sparkglim.net');
      url.search = new URLSearchParams({ type: 'ticketing', country: 'GH', sort: 'latest', page: '1', limit: '12' }).toString();
      const response = await fetch(url, { headers: { accept: 'application/json' }, signal: AbortSignal.timeout(12000) });
      const payload = await response.json();
      if (!response.ok || payload.success !== true || !payload.data) throw new Error(payload.error || 'Discovery unavailable');
      return payload.data;
    }
    02

    Criar um proxy de leitura limitado

    Guarde a função TypeScript em read-public-campaigns.ts. O exemplo seguinte é um handler Next.js para a pasta API pretendida na sua aplicação.

    Use cache curto para dados públicos bem-sucedidos e no-store nos erros. Não aceite destinos externos arbitrários do visitante.

    Pedido ilustrativo com valores de exemplo
    typescript
    import { readPublicCampaigns } from './read-public-campaigns';
    export async function GET() {
      try {
        const data = await readPublicCampaigns();
        return Response.json({ success: true, data }, { headers: { 'Cache-Control': 'public, max-age=60' } });
      } catch {
        return Response.json({ success: false, error: 'Discovery unavailable' }, { status: 503, headers: { 'Cache-Control': 'no-store' } });
      }
    }
    03

    Apresentar dados verdadeiros

    Leia data.entries, data.available e data.pagination. Lista vazia, indisponibilidade e erro são estados diferentes; não os substitua por eventos fictícios.

    Apresente títulos como texto e use tipo e slug reais para bilhética, votação ou donativos. Preserve país e idioma sem colocar o pagamento numa iframe.

    Verifique a sua integração

    • Verificar dados, ausência de resultados e erro 503 sem transações.
    • Manter tipo, paginação, moeda, datas e visibilidade reais.