[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.