O Laravel já possui os três componentes necessários: um cliente HTTP, um cache e uma fila. Resolva o veículo em uma classe de serviço, lembre-se do URL e renderize através de um componente Blade que o resto da aplicação nunca precisa considerar.
Envolva a consulta em um pequeno serviço, coloque Cache::remember ao redor e vincule-o no contêiner. A partir desse ponto, o restante do código base chama um método e recebe uma URL, sem saber que uma API foi envolvida.
Um serviço, uma chamada de cache, um componente Blade e um trabalho em fila para lotes. Todos os quatro são a versão sem graça
Um arquivo de configuração com a chave do .env, para que nada sensível alcance o controle de versão
O cliente HTTP chama a API com um VIN ou uma especificação, e o método retorna as URLs que suas visualizações precisam.
Cache::remember com uma chave construída a partir do identificador do veículo. Listagens, então, renderizam inteiramente a partir do cache
Para uma passagem completa do catálogo, envie um trabalho por veículo para que a importação ocorra em segundo plano e possa ser retentada
Traga imagens de veículos para o seu produto sem trabalho pesado. Documentação clara, SDKs abertos e plugins prontos se conectam ao seu stack em minutos, e a nossa página de estado mostra ao vivo como a API está.
Um único componente x-vehicle-image recebe o veículo e a largura, e todas as visualizações na aplicação o utilizam. Quando o ângulo ou o formato mudam depois, você edita um arquivo
Aplicações Laravel geralmente chegam à imagem de veículos através de um script de importação. Alguém escreve um comando que baixa fotos para o armazenamento, e a partir daí a aplicação carrega um sistema de arquivos cheio de fotos de veículos, uma fila que mantém tudo atualizado e um relatório de bugs toda vez que um ano do modelo está faltando.
Resolver sob demanda elimina completamente a camada de armazenamento. O identificador do veículo que você já tem se torna a imagem, o cache torna isso barato e um componente Blade o torna invisível. O que antes era um pipeline de importação com seus próprios modos de falha se torna uma chamada de método que retorna uma string.
Não é um dedicado. A API é um endpoint REST simples, e o cliente HTTP mais uma classe de serviço geralmente é menos código do que configurar um pacote seria.
Cache::remember com uma chave construída a partir do VIN ou da especificação. Um TTL longo é bom, pois a resposta só muda quando seu catálogo muda
Não há necessidade. Os URLs apontam para o nosso CDN, então armazenamento, backups e uso de disco permanecem onde estão.
Http::fake no seu caso de teste. Como o serviço retorna URLs, a maioria dos testes só precisa afirmar a forma do que retorna
Enviar um trabalho em fila por veículo. Trabalhos falhados tentam novamente por conta própria e a importação fica fora do ciclo de solicitação
Sim. Ambos recebem a URL do servidor como uma string comum, então nada muda na integração.
Informe como os veículos são armazenados no seu esquema e onde as imagens são renderizadas. Retornamos com URLs e um esboço de serviço.