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

Haz como yo hice

<!-- Aplicación Web con Spring Boot -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<!-- Acceso a base de datos con JPA -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<!-- Driver de PostgreSQL -->
<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <scope>runtime</scope>
</dependency>

<!-- DevTools para Live Reload -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>runtime</scope>
    <optional>true</optional>
</dependency>

package com.tuempresa.series.dto;

public record DatosSerie(
Long id,
String titulo,
Integer totalTemporadas,
Double evaluacion,
String poster
) {
}

package com.tuempresa.series.model;

import jakarta.persistence.*;

@Entity
@Table(name = "series")
public class Serie {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private String titulo;
private Integer totalTemporadas;
private Double evaluacion;
private String poster;

public Serie() {}

public Long getId() { return id; }
public String getTitulo() { return titulo; }
public Integer getTotalTemporadas() { return totalTemporadas; }
public Double getEvaluacion() { return evaluacion; }
public String getPoster() { return poster; }

public void setId(Long id) { this.id = id; }
public void setTitulo(String titulo) { this.titulo = titulo; }
public void setTotalTemporadas(Integer totalTemporadas) { this.totalTemporadas = totalTemporadas; }
public void setEvaluacion(Double evaluacion) { this.evaluacion = evaluacion; }
public void setPoster(String poster) { this.poster = poster; }

}

package com.tuempresa.series.repository;

import com.tuempresa.series.model.Serie;
import org.springframework.data.jpa.repository.JpaRepository;

public interface SerieRepository extends JpaRepository<Serie, Long> {
}

package com.tuempresa.series.controller;

import com.tuempresa.series.dto.DatosSerie;
import com.tuempresa.series.repository.SerieRepository;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class SerieController {

private final SerieRepository repositorio;

public SerieController(SerieRepository repositorio) {
    this.repositorio = repositorio;
}

@GetMapping("/series")
public List<DatosSerie> obtenerSeries() {
    return repositorio.findAll()
            .stream()
            .map(s -> new DatosSerie(
                    s.getId(),
                    s.getTitulo(),
                    s.getTotalTemporadas(),
                    s.getEvaluacion(),
                    s.getPoster()
            ))
            .toList();
}

}

package com.tuempresa.series.controller;

import com.tuempresa.series.dto.DatosSerie;
import com.tuempresa.series.repository.SerieRepository;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class SerieController {

private final SerieRepository repositorio;

public SerieController(SerieRepository repositorio) {
    this.repositorio = repositorio;
}

@GetMapping("/series")
public List<DatosSerie> obtenerSeries() {
    return repositorio.findAll()
            .stream()
            .map(s -> new DatosSerie(
                    s.getId(),
                    s.getTitulo(),
                    s.getTotalTemporadas(),
                    s.getEvaluacion(),
                    s.getPoster()
            ))
            .toList();
}

}

spring.application.name=series

spring.datasource.url=jdbc:postgresql://localhost:5432/seriesdb
spring.datasource.username=postgres
spring.datasource.password=123456

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

spring.devtools.livereload.enabled=true

[
{
"id": 1,
"titulo": "Breaking Bad",
"totalTemporadas": 5,
"evaluacion": 9.5,
"poster": "url_del_poster"
}
]

1 respuesta

Hola David,

Gracias por compartir tu código con nosotros. Es muy bueno ver cómo vas poniendo en práctica lo que aprendes.

Te recomiendo que puedas interactuar con el resto de nuestros compañeros por nuestro Discord.

En virtud de que en Discord el alcance es mayor, la interacción es inmediata y llega a más compañeros, y el foro solo quedaría para esclarecer cualquier duda que puedas tener sobre el contenido de los cursos.

De esa manera, si quieres seguir compartiendo tus soluciones y proyectos, sea por el Discord — con certeza por ahí llegará a más personas.

¡Gracias nuevamente!

Saludos,

Si este post te ayudó, por favor, marca como solucionado ✓. ¡Continúa con tus estudios!