Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Sugerencia] Sugerencia resolución Proyecto final de Manos en la masa

Hola, ¿qué tal? Comparto mi implementación del endpoint para obtener el top 5 de episodios de una serie.

Clase SerieController

  @GetMapping("/{id}/temporadas/top")
    public List<EpisodioDTO>  obtenerTop5EpisodiosPorSerie(@PathVariable Long id){
        return servicio.obtenerTop5EpisodiosPorSerie(id);
    }
Clase SerieService

  public List<EpisodioDTO> obtenerTop5EpisodiosPorSerie(Long id) {
        Optional<Serie> serieOptional = repository.findById(id);

         if (serieOptional.isPresent()) {
             Serie serie = serieOptional.get();
             return repository.top5Episodios(serie).stream().map(e -> new EpisodioDTO(e.getTemporada(), e.getTitulo(),
                     e.getNumeroEpisodio())).collect(Collectors.toList());
         }
         return List.of();

    }
    

La idea es usar Optional para manejar el caso en el que la serie no exista y, en ese escenario, devolver una lista vacía en lugar de null

1 respuesta

Hola, Carlos, espero que estés bien

¡Qué gusto verte compartiendo tu implementación! Me parece que tu enfoque para manejar el caso en el que la serie no existe es muy acertado. Usar Optional es una excelente manera de evitar NullPointerException y devolver una lista vacía es una práctica común y útil para indicar que no se encontraron resultados.

Además, tu uso de stream y map para transformar los episodios en EpisodioDTO es claro y conciso. Asegúrate de que el método top5Episodios en tu repositorio esté correctamente implementado para devolver los episodios en el orden deseado, posiblemente ordenados por algún criterio como calificación o número de vistas.

Si te interesa, podrías considerar manejar el caso en que la serie no exista con una excepción personalizada, si deseas diferenciar entre una serie que no tiene episodios y una que no existe. Pero eso ya depende de cómo quieras manejar los errores en tu API.

Espero que esta sugerencia te sea útil y te deseo mucho éxito con tu proyecto. ¡Espero haber ayudado y buenos estudios!