Executando verificação de segurança...
1
gsouza
2 min de leitura ·

[Discussão] Como consumir imagens de um endpoint?

Contexto
Um app em Kotlin para encontrar hotéis e outros serviços para pets que, na tela inicial pós login, com o RecyclerView, por exemplo, lista hotéis cadastrados na nossa base.

Problema
Atualmente a ideia é salvar as imagens dos hoteis na S3 e através de uma API em Spring Boot buscar as imagens e retornar em um endpoint. Fiz uma POC retornando apenas uma imagem/hotel por endpoint e funciona perfeitamente rápido, até pra transformar em Bitmap no Kotlin/Android. Mas na tela de listagem de hoteis já temos um endpoint que retorna as outras informações como nome do hotel, descrição, serviços prestados etc e pensei na possibilidade de adicionar, neste endpoint (JSON), um novo campo para retornar a imagem, e ai a casa caiu...

Tentei retornar em byte[] e String (Base64) e nos dois casos o endpoint ficou bem lento. Ja considerei retornar um link de um CloudFront com um behavior apontando para o S3 e retornando o arquivo, algo como https://hu3yuhduene.cloudfront.net/images/hotel_uuid/foto.png, mas antes gostaria de saber se alguém aqui já teve experiência com algo parecido, é comum retornar a "imagem" junto com as outras informações? Isso me deixou curioso para saber como o iFood, por exemplo, lista todas as imagens de maneira tão eficiente. Também imagino que possa existir algum cache, mas seria feito, neste caso em específico, "dentro" da API Spring Boot mesmo? Enfim, meu intuito com a publição é reunir o máximo de experiência e material de estudo sobre o tema, então podem discorrer sobre.

Carregando publicação patrocinada...
1

é comum retornar a "imagem" junto com as outras informações?

Se é comum eu não sei, se eu faço? Com certeza.

Rápido, prático, atende. Não vejo pq não fazer. Mas no caso eu retorno o link da imagem no s3 (ou o link temporário, caso seu bucket seja privado), e ele já renderiza a imagem no front.

1
1

Ai vou ficar te devendo.
No caso específico, eu criei apenas a API que retorna, entre outras coisas, o link da imagem. Não sei se a equipe do front faz cache disso, mas provavelmente sim, para melhorar o tempo de resposta. Agora como, eu não sei exatamente haha.

1