5.0 / 5

Rest con Spring Boot – Ejemplo Basico 1

5.606K
5

Hola a todos, hoy les compartiré lo que estoy aprendiendo últimamente,  llegue aquí por la necesidad de crear una api rest en java que me sea de utilidad para un proyecto personal, esta api en un principio la quiero usar tanto web como mobile.

Spring Boot es una de las  tantas tecnologias que nos ofrece Spring. Este nos facilita muchas cosas, AppServer, Contextos de Spring, monitorización etc…

Permite crear aplicaciones standalone o despliegues WAR.

Nos ahorra mucha configuración ya que usa anotaciones, pero siempre hay cositas que se tienen que configurar, no hace magia, jejeje.

Bueno empecemos, en este caso voy a usar Spring Tool Suite.

En la siguiente pantalla seleccionamos Web y Actuator.

El pom puede quedar de esta forma.

<meta http-equiv="content-type" content="text/html; charset=utf-8"><pre class="lang:xhtml decode:true"><?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>ar.com.juanlopez</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>SpringBoot</name>
<description>Demo project for Spring Boot</description>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>

<dependencies>

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>1.5.1.RELEASE</version>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>


</project>

Nuestro Objeto con el cual vamos a probar la api.

 package ar.com.juanlopez.model;

import java.util.Date;


public class Usuario {
	private Integer idUsuario;
	private String nombreUsuario;
	private String domicilio;
	private String mobil;
	private String telefono;
	private String colegio;
	private Integer edad;
	
	/**
	 * 
	 */
	public Usuario() {
		
	}

	/**
	 * 
	 * @param idUsuario
	 * @param nombreUsuario
	 * @param domicilio
	 * @param mobil
	 * @param telefono
	 * @param colegio
	 * @param edad
	 */
	public Usuario(Integer idUsuario, String nombreUsuario, String domicilio, String mobil, String telefono,
			String colegio, Integer edad) {
		this.idUsuario = idUsuario;
		this.nombreUsuario = nombreUsuario;
		this.domicilio = domicilio;
		this.mobil = mobil;
		this.telefono = telefono;
		this.colegio = colegio;
		this.edad = edad;
	}
	
	

	/**
	 * @param nombreUsuario
	 * @param domicilio
	 */
	public Usuario(String nombreUsuario, String domicilio) {
		this.idUsuario = (int) (new Date()).getTime();
		this.nombreUsuario = nombreUsuario;
		this.domicilio = domicilio;
	}

	/**
	 * @return the idUsuario
	 */
	public Integer getIdUsuario() {
		return idUsuario;
	}

	/**
	 * @param idUsuario the idUsuario to set
	 */
	public void setIdUsuario(Integer idUsuario) {
		this.idUsuario = idUsuario;
	}

	/**
	 * @return the nombreUsuario
	 */
	public String getNombreUsuario() {
		return nombreUsuario;
	}

	/**
	 * @param nombreUsuario the nombreUsuario to set
	 */
	public void setNombreUsuario(String nombreUsuario) {
		this.nombreUsuario = nombreUsuario;
	}

	/**
	 * @return the domicilio
	 */
	public String getDomicilio() {
		return domicilio;
	}

	/**
	 * @param domicilio the domicilio to set
	 */
	public void setDomicilio(String domicilio) {
		this.domicilio = domicilio;
	}

	/**
	 * @return the mobil
	 */
	public String getMobil() {
		return mobil;
	}

	/**
	 * @param mobil the mobil to set
	 */
	public void setMobil(String mobil) {
		this.mobil = mobil;
	}

	/**
	 * @return the telefono
	 */
	public String getTelefono() {
		return telefono;
	}

	/**
	 * @param telefono the telefono to set
	 */
	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	/**
	 * @return the colegio
	 */
	public String getColegio() {
		return colegio;
	}

	/**
	 * @param colegio the colegio to set
	 */
	public void setColegio(String colegio) {
		this.colegio = colegio;
	}

	/**
	 * @return the edad
	 */
	public Integer getEdad() {
		return edad;
	}

	/**
	 * @param edad the edad to set
	 */
	public void setEdad(Integer edad) {
		this.edad = edad;
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "Usuario [idUsuario=" + idUsuario + ", nombreUsuario=" + nombreUsuario + ", domicilio=" + domicilio
				+ ", mobil=" + mobil + ", telefono=" + telefono + ", colegio=" + colegio + ", edad=" + edad + "]";
	}	
	
}

La anotación @SpringBootApplication es el punto de partida de la aplicación Spring Boot. Inicializaremos la aplicación llamando a la línea siguiente de nuestro método principal.


package ar.com.juanlopez;

import java.util.HashMap;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import ar.com.juanlopez.model.Usuario;

@SpringBootApplication
public class Application {

    public static HashMap<Long, Usuario> hmUsuario;

    public static void main(String[] args) {
        hmUsuario = new HashMap<Long, Usuario>();

        Usuario one = new Usuario(1, "Juan Manuel Lopez", "Esnaola 160", "154105177", "4226288", "Pizzurno", 31);
        hmUsuario.put(new Long(one.getIdUsuario()), one);

        SpringApplication.run(Application.class, args);

        Usuario two = new Usuario(2, "Mariela Elizabeth Olivera", "Esnaola 160", "154105177", "4226288", "Pizzurno",
                32);
        hmUsuario.put(new Long(two.getIdUsuario()), two);
    }
}

Cree una clase UsuarioService, usando @RestController y @RequestMapping. Establezca el valor de @RequestMapping en / rest / usuario. A continuación, cree una función llamada getAllUsuarios () y establezca el valor para @RequestMapping en /listAllUsuarios.


package ar.com.juanlopez.servicio;

import java.util.HashMap;

import org.springframework.web.bind.annotation.*;

import ar.com.juanlopez.Application;
import ar.com.juanlopez.model.Usuario;

@RestController
@RequestMapping(value = "/rest/usuario")
public class UsuarioService {
    @RequestMapping(value = "/listAllUsuarios", method = RequestMethod.GET)
    public HashMap<Long, Usuario> getAllUsuarios() {
        return Application.hmUsuario;
    }
}

Ejecutamos la aplicacion y vamos a ver el resultado en el navegador.

Si queremos ver el resultado de una forma mas ordenada, podemos usar Postman, o el que mas cómodo les parezca.

Bueno es todo por hoy, pronto voy a seguir con el alta, modificación y baja.

Espero les guste el articulo y espero sus comentarios. Saludos.

THIS IS AN OPTIONAL

Related Post

Hola a todos ¿como están? hoy vamos a ver un poco como "no diseñar APIs", en este caso Api Rest.

Hola como están, bueno en este articulo les mostrare como actualizar su proyecto en JHipster a la u

LEAVE YOUR COMMENTS