TryOnCloud
InícioIntegrationsReact & Next.js
IntermédioConfiguração: 2–3 hoursREST API — called from React/Next.js frontend or API routes

API de experimentação virtual para React, Next.js e Angular — Guia de Frontend

Integre a funcionalidade de experimentação virtual do TryOnCloud no React, Next.js, Angular ou em qualquer SPA JavaScript. Chame a API REST a partir do seu frontend ou backend, gere o carregamento de imagens e apresente os resultados diretamente na página. Inclui exemplos de hooks do React e de rotas de API do Next.js.

Método

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)

Linguagem

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

Ideal para

Headless ecommerce, D2C brands, custom fashion storefronts

Por que usar TryOnCloud com React & Next.js

  • Funciona com qualquer framework JavaScript — React, Next.js, Angular, Vue
  • Tipos TypeScript fornecidos para os formatos de pedidos e respostas da API
  • Exemplo de rota da API do Next.js incluído — mantém a chave da API no lado do servidor
  • O hook useVirtualTryOn do React está disponível para uma integração simples de componentes
  • Pronto para streaming — exibe um indicador de carregamento enquanto a IA processa

Como configurar TryOnCloud em React & Next.js

Tempo estimado de configuração: 2–3 hours. Dificuldade: Intermédio.

  1. 1

    Criar uma rota de API proxy do lado do servidor

    No Next.js, crie o ficheiro app/api/tryon/route.ts. Esta rota chama a API do TryOnCloud utilizando a sua chave de API a partir das variáveis de ambiente. Nunca chame o TryOnCloud diretamente a partir do navegador.

  2. 2

    Gerir o envio de imagens

    Crie um ponto final de upload (app/api/upload-url/route.ts) que devolva um URL pré-assinado para a fotografia do cliente. O navegador faz o upload diretamente para o URL assinado, sem passar pelo seu servidor.

  3. 3

    Criar o componente de experimentação do React

    Crie um componente TryOnButton que acione um seletor de ficheiros, carregue a fotografia, chame o seu proxy /api/tryon e verifique /api/result/{id} até que o resultado esteja pronto.

  4. 4

    Mostrar o resultado

    Mostre a imagem do resultado numa janela modal ou em linha, abaixo da imagem do produto. Adicione um botão «Comparar» para alternar entre a foto original do produto e o resultado da simulação de experimentação.

  5. 5

    Adicionar estados de erro e carregamento

    Mostre um indicador de carregamento durante o período de processamento de 15 a 20 segundos. Trate os erros da API (formato não suportado, nenhuma peça de roupa detetada) com mensagens de fácil compreensão para o utilizador.

Exemplo de código

Next.js: Proxy de rotas de API do lado do servidor + hook do 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 }
}

O que deve saber

  • A chave API deve ser mantida no lado do servidor — nunca a exponha no JavaScript do lado do cliente
  • O carregamento de imagens requer um ponto final de carregamento de ficheiros (o exemplo fornecido utiliza rotas da API do Next.js)
  • O tempo de processamento é de 15 a 20 segundos — conceba uma interface de utilizador para uma experiência assíncrona

Perguntas frequentes

Posso usar o TryOnCloud com o Angular em vez do React?

Sim. A API REST é independente da estrutura. Crie um serviço Angular que chame o seu ponto final de proxy do backend. Os tipos TypeScript são idênticos.

Por que é que a chave API tem de estar no lado do servidor?

As chaves API no JavaScript do lado do cliente ficam visíveis para qualquer pessoa que abra as Ferramentas de Desenvolvimento do navegador. Utilize uma rota API do Next.js ou um backend do Express.js como proxy — a chave fica armazenada em variáveis de ambiente, e não no navegador.

Como posso mostrar um indicador de progresso durante o processamento?

Defina um estado de processamento quando a tarefa for enviada e mostre um indicador de carregamento ou uma barra de progresso. O TryOnCloud processa em 15 a 20 segundos. Pode exibir uma mensagem: «A sua prova virtual está a ser gerada...»

O TryOnCloud suporta a transmissão do resultado?

Ainda não — o resultado é uma única imagem final. A transmissão de renderizações parciais está prevista no plano de desenvolvimento do produto.

Pronto para adicionar prova virtual à sua loja React & Next.js?

Junte-se a centenas de comerciantes de moda que reduzem devoluções e aumentam conversões com TryOnCloud. Comece grátis — sem cartão de crédito.

Começar grátis

Outras integrações