Mi Primer API Rest Con Spring Boot
Mi Primer API Rest Con Spring Boot
Mi Primer API Rest Con Spring Boot
La Base de datos
Esta será la estructura de nuestra base de datos.
En el archivo application.properties con la siguiente ruta de acceso:
src/main/resources/ agregamos el string de conexión para ingresar
a la base de datos que creamos anteriormente.
spring.datasource.url=jdbc:mysql://localhost:3306/t
est?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=
spring.jpa.show-sql=true
Desarrollo de la API
La siguiente estructura de paquetes es la que creamos para la
aplicación.
La clase DemoApplication.java
package com.example.demo;
import org.springframework.boot.SpringApplication;
import
org.springframework.boot.autoconfigure.SpringBootApplication;
import
org.springframework.data.jpa.repository.config.EnableJpaAuditing;
@SpringBootApplication
@EnableJpaAuditing
SpringApplication.run(DemoApplication.class, args);
La clase Person.java
package com.example.demo.model;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.springframework.data.annotation.CreatedDate;
import
org.springframework.data.jpa.domain.support.AuditingEntityListene
r;
@Entity
@Table(name = "users")
@EntityListeners(AuditingEntityListener.class)
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_name")
@CreatedDate
public Person() {
this.id = id;
this.name = name;
this.userName = userName;
this.date = date;
return id;
}
this.id = id;
return name;
this.name = name;
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
return date;
this.date = date;
@Override
}
La clase PersonRepository.java
package com.example.demo.repository;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import com.example.demo.model.Person;
@Repository
}
La clase PersonController.java
package com.example.demo.Controlller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.example.demo.model.Person;
import com.example.demo.repository.PersonRepository;
@RestController
@RequestMapping("/api")
@Autowired
@GetMapping("/persons")
return repository.findAll();
@GetMapping("/person/{name}")
return repository.findByName(name);
@PostMapping("/person")
public Person createPerson(@RequestBody Person person) {
return repository.save(person);
@PutMapping("/person/{id}")
return repository.save(person);
@DeleteMapping("/person/{id}")
repository.deleteById(id);
SECCION DE PRUEBAS