Mi Primer API Rest Con Spring Boot

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 21

Mi primer API Rest con Spring Boot

Crear el proyecto con Spring Boot

Para iniciar con nuestro proyecto lo realizaremos con spring


initializr.
Descripción de los campos:
Project: Seleccionamos el gestor de nuestra aplicación maven o
gradle, utilizaremos maven

Languaje: Elegimos con qué lenguaje queremos trabajar,


utilizaremos Java

Spring Boot: Seleccionamos la versión con la que queremos trabajar,


se deja la que está por default

Project Metadata: Aquí ingresamos el nombre de nuestro proyecto

Packaging: Seleccionamos el empaquetado de nuestra aplicaciones

Java: Seleccionamos la versión de Java

Dependecies: Aquí buscaremos las dependencias que necesitemos,


buscamos y agregamos las que se muestran a continuación.
Damos clic en Generate para descargar el proyecto, una vez
descargado lo descomprimimos.

Para el desarrollo de la aplicación utilizamos Spring Tool Suite (STS),


en este IDE importamos el proyecto como Existing Maven Projects
Nos aparecerá un archivo pom.xml, marcamos el check y damos clic
en next.

Nuestro proyecto (STS) empezará a descargar las dependencias que


seleccionamos anteriormente, estas se encuentran en el archivo
pom.xml

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

Es la clase que arranca cuando iniciamos la aplicación.

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

public class DemoApplication {

public static void main(String[] args) {

SpringApplication.run(DemoApplication.class, args);

La clase Person.java

La entidad de nuestro objeto Person, esta clase va a mapear los


atributos como campos en la base de datos.

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)

public class Person {

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

private Long id;

private String name;

@Column(name = "user_name")

private String userName;


@Column(name = "date_registry")

@CreatedDate

private Date date;

public Person() {

public Person(Long id, String name, String userName, Date


date) {

this.id = id;

this.name = name;

this.userName = userName;

this.date = date;

public Long getId() {

return id;
}

public void setId(Long id) {

this.id = id;

public String getName() {

return name;

public void setName(String name) {

this.name = name;

public String getUserName() {

return userName;

}
public void setUserName(String userName) {

this.userName = userName;

public Date getDate() {

return date;

public void setDate(Date date) {

this.date = date;

@Override

public String toString() {

return "Person [id=" + id + ", name=" + name + ",


userName=" + userName + ", date=" + date + "]";

}
La clase PersonRepository.java

Esta clase nos ayuda a realizar operaciones en nuestra base de datos


sin escribir tantas líneas de código, Spring Data realiza esto por
nosotros, operaciones como delete, save, findAll, son algunos de los
métodos que realiza automáticamente.

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

public interface PersonRepository extends JpaRepository<Person,


Long>{

List<Person> findByName(@Param("name") String name);

}
La clase PersonController.java

Esta clase le indica a spring que la clase va a ser un controlador de


una API Rest, nos proveerá de todos los métodos para un CRUD.

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")

public class PersonController {

@Autowired

private PersonRepository repository;

@GetMapping("/persons")

public List<Person> allPersons(){

return repository.findAll();

@GetMapping("/person/{name}")

public List<Person> findByName(@PathVariable("name")


String name) {

return repository.findByName(name);

@PostMapping("/person")
public Person createPerson(@RequestBody Person person) {

return repository.save(person);

@PutMapping("/person/{id}")

public Person updatePerson(@PathVariable int id


,@RequestBody Person person) {

return repository.save(person);

@DeleteMapping("/person/{id}")

public void deletePerson(@PathVariable("id") Long id) {

repository.deleteById(id);

SECCION DE PRUEBAS

Para realizar las pruebas correspondientes vamos a utilizar postman


una aplicación para probar api's.
Realizamos una prueba para almacenar un nuevo registro, para esto
utilizamos un método POST.

Con el método POST nosotros podemos almacenar nuevos registros


en nuestra base de datos.
Probamos la petición Get

Esta petición get nos traerá todos los registros

Prueba de la petición Get con parámetro


Con la petición Get con parámetro name, podemos buscar un objeto
Person por medio del name.

Prueba para actualizar un registro


Este es el registro que queremos actualizar.

A continuación con el método PUT, actualizamos el registro

También podría gustarte