TryOnCloud
HomeIntegrationsReact & Next.js
IntermedioConfigurazione: 2–3 hoursREST API — called from React/Next.js frontend or API routes

API per la prova virtuale per React, Next.js e Angular — Guida al frontend

Integra la funzione di prova virtuale di TryOnCloud in React, Next.js, Angular o qualsiasi SPA JavaScript. Richiama l'API REST dal tuo frontend o backend, gestisci il caricamento delle immagini e visualizza i risultati direttamente nella pagina. Include hook React ed esempi di route API per Next.js.

Metodo

REST API — called from React/Next.js frontend or API routes

Auth

API key — use server-side API routes to keep key private (never expose in browser)

Linguaggio

TypeScript / JavaScript (React, Next.js, Angular)

Ideale per

Headless ecommerce, D2C brands, custom fashion storefronts

Perché usare TryOnCloud con React & Next.js

  • Funziona con qualsiasi framework JavaScript: React, Next.js, Angular, Vue
  • Tipi TypeScript definiti per i modelli di richiesta e risposta delle API
  • Esempio di route API Next.js incluso — la chiave API viene conservata sul lato server
  • L'hook React useVirtualTryOn è disponibile per un'integrazione pulita dei componenti
  • Ottimizzato per lo streaming: visualizza lo stato di caricamento mentre l'IA elabora i dati

Come configurare TryOnCloud su React & Next.js

Tempo di configurazione stimato: 2–3 hours. Difficoltà: Intermedio.

  1. 1

    Creare una route API proxy lato server

    In Next.js, crea il file app/api/tryon/route.ts. Questo percorso richiama l'API di TryOnCloud utilizzando la tua chiave API presente nelle variabili d'ambiente. Non richiamare mai TryOnCloud direttamente dal browser.

  2. 2

    Gestione del caricamento delle immagini

    Crea un endpoint di caricamento (app/api/upload-url/route.ts) che restituisca un URL pre-firmato per la foto del cliente. Il browser effettua il caricamento direttamente all'URL firmato, senza passare dal tuo server.

  3. 3

    Crea il componente React per la prova virtuale

    Crea un componente TryOnButton che avvii una finestra di selezione file, carichi la foto, chiami il tuo proxy /api/tryon e interroghi l'endpoint /api/result/{id} finché il risultato non è pronto.

  4. 4

    Visualizza il risultato

    Mostra l'immagine del risultato in una finestra modale o in linea sotto l'immagine del prodotto. Aggiungi un pulsante "Confronta" per passare dalla foto originale del prodotto al risultato della prova.

  5. 5

    Aggiungi stati di errore e di caricamento

    Visualizza un indicatore di caricamento durante i 15-20 secondi necessari all'elaborazione. Gestisci gli errori dell'API (formato non supportato, nessun indumento rilevato) con messaggi chiari e intuitivi.

Esempio di codice

Next.js: proxy per route API lato server + hook React

typescript
// app/api/tryon/route.ts — server-side proxy (keeps API key private)
export async function POST(req: Request) {
  const { garmentUrl, personUrl } = await req.json()

  const res = await fetch('https://www.tryoncloud.com/api/tryon', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-Key': process.env.TRYONCLOUD_API_KEY!,
    },
    body: JSON.stringify({
      garment_image_url: garmentUrl,
      person_image_url: personUrl,
    }),
  })

  const data = await res.json()
  return Response.json(data)
}

// hooks/useVirtualTryOn.ts
export function useVirtualTryOn() {
  const [status, setStatus] = useState<'idle'|'uploading'|'processing'|'done'|'error'>('idle')
  const [resultUrl, setResultUrl] = useState<string | null>(null)

  const tryOn = async (garmentUrl: string, personFile: File) => {
    setStatus('uploading')
    // 1. Get upload URL, upload photo
    const { uploadUrl, personUrl } = await getUploadUrl(personFile)
    await fetch(uploadUrl, { method: 'PUT', body: personFile })

    // 2. Submit try-on job
    setStatus('processing')
    const { job_id } = await fetch('/api/tryon', {
      method: 'POST',
      body: JSON.stringify({ garmentUrl, personUrl }),
    }).then(r => r.json())

    // 3. Poll for result
    for (let i = 0; i < 10; i++) {
      await new Promise(r => setTimeout(r, 3000))
      const result = await fetch(`/api/result/${job_id}`).then(r => r.json())
      if (result.status === 'complete') {
        setResultUrl(result.result_url)
        setStatus('done')
        return
      }
    }
    setStatus('error')
  }

  return { tryOn, status, resultUrl }
}

Cose da sapere

  • La chiave API deve essere conservata sul lato server: non renderla mai visibile nel codice JavaScript lato client
  • Per caricare un'immagine è necessario un endpoint di caricamento file (l'esempio fornito utilizza i percorsi API di Next.js)
  • Il tempo di elaborazione è di 15–20 secondi — progettare l'interfaccia utente per un'esperienza asincrona

Domande frequenti

Posso usare TryOnCloud con Angular invece che con React?

Sì. L'API REST è indipendente dal framework. Crea un servizio Angular che chiami l'endpoint del tuo proxy backend. I tipi TypeScript sono identici.

Perché la chiave API deve essere gestita dal server?

Le chiavi API nel JavaScript lato client sono visibili a chiunque apra gli Strumenti di sviluppo del browser. Utilizza una route API di Next.js o un backend Express.js come proxy: in questo modo la chiave risiede nelle variabili d'ambiente e non nel browser.

Come faccio a visualizzare un indicatore di avanzamento durante l'elaborazione?

Imposta uno stato di elaborazione al momento dell'invio del processo e mostra un'icona di caricamento o una barra di avanzamento. TryOnCloud esegue l'elaborazione in 15-20 secondi. È possibile visualizzare un messaggio del tipo: «La tua prova virtuale è in fase di generazione...»

TryOnCloud supporta lo streaming dei risultati?

Non ancora: il risultato è un'unica immagine finale. Lo streaming dei rendering parziali è previsto nella roadmap del prodotto.

Pronto ad aggiungere il virtual try-on al tuo negozio React & Next.js?

Unisciti a centinaia di commercianti di moda che riducono i resi e aumentano le conversioni con TryOnCloud. Inizia gratis — nessuna carta di credito richiesta.

Inizia gratis

Altre integrazioni