Todos os artigos
Engenharia

Adicionando imagens de veículos a um app React ou Vue

Resolva o veículo uma vez, renderize uma tag de imagem para sempre: o padrão de integração para Vehicle Imagery em React e Vue, com srcset, carregamento preguiçoso e cache.

Robin Ashford30 de julho de 20267 minutos de leitura
Hero do blog: react vue

Imagens de veículos parecem uma classe de ativos especial até você integrá-las. A partir daí, elas se revelam exatamente o que um frontend deseja que todo ativo seja: uma URL com parâmetros. Este artigo passa pelo padrão de integração para frameworks de componentes. Os exemplos são em React, e o padrão é idêntico em Vue, Svelte ou qualquer outra coisa que renderize uma tag <img>.

A forma da API

Toda imagem está em um caminho previsível: marca, modelo, ano, variante, acabamento, depois a visão. As opções viajam como parâmetros de consulta. Uma solicitação como /api/Abarth/124_Spider_Abarth/2016/Basis/base/front_left?format=webp&width=1200 retorna JSON com metadados e um image_url assinado pronto para uma tag de imagem. A autenticação é um único cabeçalho x-api-key; também há um pacote npm (npm install vehicleimagery) que envolve essas chamadas.

Regra um: resolva do lado do servidor, renderize do lado do cliente

A decisão arquitetônica que importa: não chame o API do navegador. Sua chave de API não pertence ao código do cliente, e a etapa de resolução (identificador entra, veículo sai) deve ficar onde seus dados estão. Resolva o veículo no seu backend ou no momento da construção, armazene o caminho e a URL assinada junto com o registro do veículo, e deixe que os componentes recebam uma URL de imagem como uma propriedade comum. A árvore de componentes nunca sabe que existe um API de veículos; ela renderiza strings.

  • A chave da API fica no servidor, onde as chaves devem ficar
  • Uma resolução por veículo por atualização de catálogo, não uma por visualização de página
  • Os componentes permanecem simples, testáveis e portáteis para frameworks

Imagens responsivas vêm gratuitas

Porque as dimensões são parâmetros de solicitação, srcset é apenas a mesma URL em três larguras: solicite variantes de 600, 1200 e 2000 pixels e deixe o navegador escolher. Sirva format=webp como padrão; recorra ao PNG apenas onde você realmente compõe sobre transparência em canvas ou impressão. A diferença de carga útil em uma grade de listagens não é sutil.

Blog inline: grade de componentes

Os detalhes que separam boas integrações.

  • Carregue tudo abaixo da dobra de forma preguiçosa; uma grade de listagens é o caso clássico de loading="lazy"
  • Reserve a proporção de aspecto no CSS para que a grade não refluir enquanto as imagens chegam
  • Escreva texto alternativo real a partir dos dados que você já possui: ano, marca, modelo, versão, cor, ângulo
  • Armazene URLs de imagens no seu próprio armazenamento ou CDN; resolva novamente na atualização do catálogo, não na solicitação
  • Verifique o array errornotes nas respostas. O API informa quando substituiu um fallback, por exemplo um ano modelo vizinho

O trabalho de um componente é completo

O estado final é chato, o que é o objetivo: um componente VehicleImage que recebe uma URL resolvida, uma dica de largura e texto alternativo, e renderiza uma tag de imagem com srcset e carregamento preguiçoso. Toda a inteligência do veículo vive na camada de dados, onde pode ser armazenada em cache, registrada e trocada. Se o seu componente sabe o que é um VIN, a fronteira está no lugar errado.

Estados de carregamento e erro

Dois estados merecem atenção no design antes do lançamento. Enquanto uma imagem carrega, um esqueleto de proporção fixa mantém o cartão estável, e como cada veículo é enviado com o mesmo enquadramento, um placeholder de silhueta serve para todo o catálogo. Quando uma busca falha ou um veículo não tem imagem ainda, recorra a um placeholder deliberadamente marcado com a marca em vez de um ícone de imagem quebrada, e registre o identificador para que a lacuna seja um ticket de dados em vez de um mistério.

A referência completa dos parâmetros e formas de resposta está na documentação da API. A página da API de imagens de veículos cobre a busca por VIN, placa e o passo de resolução de busca.

Quer essas imagens para seu inventário?

Diga-nos quais veículos você lista e enviaremos exemplos reais do seu próprio estoque.

Robin Ashford
Escrito por
Robin Ashford
Chefe de Conteúdo

Robin escreve sobre o ponto onde carros e software se encontram: imagens, dados de veículos e os sistemas que vendem veículos online. Uma década em marketplaces, plataformas de leasing e ferramentas para concessionárias ensinou a ela quais problemas são reais, e os textos aqui se concentram nesses.