Aller à la documentation
SparkGlimSparkGlim Développeurs
Rechercher dans toute la documentation

Essayez un sujet dans votre langue ou un chemin API exact.

    Guides d’intégration

    Créer un annuaire de campagnes publiques réelles

    Lisez la découverte depuis votre serveur, exposez une réponse limitée et reliez les visiteurs au parcours réel.

    Avant de commencer

    • Node 20+ avec fetch, Python 3 avec urllib ou PHP avec cURL et JSON sur votre serveur.
    • Origine HTTPS du Server et pays réellement disponible ; aucune clé secrète pour cette lecture.
    • Interface capable d’afficher du texte sans HTML injecté et de gérer les résultats vides ou indisponibles.
    01

    Choisir un type explicite

    GET /api/public/homepage/discovery accepte type=all|ticketing|voting|donation, country, q, location, status, date, sort, page et limit. L’exemple lit la billetterie du Ghana ; il n’active aucun paiement.

    Fixez la destination HTTPS côté serveur. Vérifiez le statut HTTP et success, avec un délai maximum.

    Requête illustrative avec valeurs fictives
    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

    Créer un relais de lecture limité

    Enregistrez la fonction TypeScript dans read-public-campaigns.ts. L’exemple suivant est un gestionnaire Next.js à placer dans le dossier API prévu de votre application.

    Cachez brièvement les réponses publiques réussies et utilisez no-store en erreur. N’acceptez jamais une origine amont fournie librement par un visiteur.

    Requête illustrative avec valeurs fictives
    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

    Afficher les véritables données

    Lisez data.entries, data.available et data.pagination. Une liste vide, une indisponibilité et une erreur sont des états distincts ; aucun événement fictif ne les remplace.

    Affichez les titres comme texte et utilisez type et slug réels pour les liens de billetterie, vote ou don. Préservez langue et pays sans placer le paiement dans une iframe.

    Vérifier votre intégration

    • Vérifier données, absence de résultats et erreur 503 sans créer de transaction.
    • Conserver type, pagination, devise, dates et règles de visibilité réels.