En ésta ocasión crearemos un servicio REST. Para ello usaremos:
- Gradle
- Spark Framework
- Gson
Crearemos una clase Departamento.java con dos atributos nombre y responsable. Un método que convertirá una lista de tipo Departamento a formato JSON.
Nuestro archivo build.gradle lucirá así:
Nuestro archivo build.gradle lucirá así:
plugins { id 'java' id 'application' } mainClassName = 'com.codemonkey.Main' dependencies { compile "com.sparkjava:spark-core:2.7.2" compile group: 'com.google.code.gson', name: 'gson', version: '2.8.5' testCompile group: 'junit', name: 'junit', version: '4.12' } repositories { jcenter() } project.configurations.compile.resolvedConfiguration.resolvedArtifacts.each { println ' [Dependencias] ' println 'artifact: '+it.name // << the artifact name println 'referencia: '+it.file // << the file reference println '**************************' } task listar << { println "Hoy es "+new Date() }
Nuestra clase Departamento.java luce así:
package com.codemonkey.model; public class Departamento { private String nombre; private String responsable; public Departamento() { } public Departamento(String nombre, String responsable) { super(); this.nombre = nombre; this.responsable = responsable; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String getResponsable() { return responsable; } public void setResponsable(String responsable) { this.responsable = responsable; } @Override public String toString() { return "{nombre:" + nombre + ", responsable:" + responsable + "}"; } }
Nuestra clase principal Main.java :
package com.codemonkey; import static java.lang.System.out; import java.util.Arrays; import java.util.List; import static spark.Spark.*; import com.codemonkey.model.Departamento; import com.google.gson.Gson; public class Main { public static final int STATUS = 200; public static final String TIPO = "application/json"; public static void main(String[] args) { List<Departamento> departamentos = Arrays.asList(new Departamento("Informatica","Ramon_Romero") , new Departamento("Contabilidad","Viridiana_Gomez"), new Departamento("Recursos_Humanos","Ana_Lilia_Gutierrez")); out.println(departamentos.toString()); //http://localhost:4567/departamentos get("/departamentos", (req, res)->{ res.status(STATUS); res.type(TIPO); return departamentos.toString(); }, new Gson()::toJson); } }
//Construimos: $ gradle build //Ejecutamos: $ gradle run
Abrimos el navegador en http://localhost:4567/departamentos
Links:
https://es.wikipedia.org/wiki/Gson
http://sparkjava.com/
https://codemonkeyjunior.wordpress.com/2019/01/24/gson-de-clase-a-json/