Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

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"
}
]