miércoles, 16 de noviembre de 2022

Creación de una API Rest con Spring Boot (Utilizando MySQL y JPA) - Parte 4: Consumo de la API Rest con Postman

Muy buenas a todos los presentes, ¡Felicidades!

Usted ha logrado crear a lo largo de este tiempo, una API Rest con Spring Boot que es básicamente un formulario en dónde se hacen todas las tareas requeridas para la realización de cada uno de sus respectivos formularios en base a lo que se conoce como un CRUD, ahora bien; el objetivo de este último documento o vídeo es el consumo de nuestra API Rest mediante un aplicativo como es el caso de Postman.

Antes de iniciar el proceso de consumo con dicha aplicación, veremos una breve explicación hacía dónde, como se compone, y cómo se trabaja dicha aplicación web hecha a partir de uno de los servicios muy conocidos en Spring, llamado Spring Boot; en dónde uno no tiene que preocuparse por configurar la aplicación sino que uno debe aplicar en sí, la lógica del negocio para todo funcione según lo planificado.

Dicha API Rest, quedó compuesto de la siguiente forma:

  • Modelo: El modelo de dicha aplicación, no es más que el POJO del respectivo formulario, con sus respectivos atributos y métodos constructores de dicha clase; las anotaciones del tipo @Entity y @Table son de carácter obligatorio, ya que estas suelen traducirse como una tabla a la cuál se está constituyendo o bien, se constituyó como parte del proyecto. Otras anotaciones como @Id (define como la id de nuestro POJO) @GeneratedValue (generación de valores), y @Column (Se utiliza cuándo se va a formar su respectiva columna), son de igual importancia para nuestro modelo base, cuándo vayamos a hacer un proyecto más complejo, ahí sí vamos a tener en cuenta los modelos de Entidad-Relación.
  • Repositorio: La parte del repositorio en dónde efectivamente hace parte de nuestra API Rest; se trató principalmente de una colección de métodos en el cuál el usuario pueda realizar ciertas tareas como agregar, modificar o eliminar ciertos tipos de datos. En esta ocasión se usó el JpaRepository.
  • Servicio: El servicio que se implementó en la API Rest son los métodos que se implementó derivados del UserRepository, incluyendo perse, los métodos creados por el mismo usuario, para que el archivo Java sea declarado como un servicio, basta con inyectar dicho elemento con la anotación @Service más el @Autowired que nos permite una asociación con el repositorio.
Ahora bien, antes de iniciar el consumo de nuestra API Rest, resumiremos lo que es de verdad, un controlador; un controlador nos permite literalmente comunicar entre el usuario y nuestra API Rest basándose en las respuestas HTTP como se publicitó en el artículo anterior, pero en esta oportunidad, veremos como se consume nuestra API Rest mediante Postman de acuerdo con lo anteriormente descrito que son, las respuestas HTTP.
 
Abrimos Postman y nos sale una ventana de esta característica:
 
Fig 1. - Aplicación Postman
 
 
Nuestra intención no es entrar a profunidad sobre Postman, sino que basándonos en ella, podemos demostrar el consumo de nuestra API Rest, haciendo las tareas básicas de GET, POST, PUT y DELETE, la dirección en la que vamos a efectuar el consumo de la API es el siguiente:
 
localhost:8080/api/basicCrud/add

Nos dirigimos hacia nuestra API Rest ya creada, y ejecutamos con el comando .\mvnw.cmd spring-boot:run, para luego irnos hacia Postman y seleccionar en dónde aparece GET la opción post, y pegaremos uno por uno los datos que aparecen a continuación dado el caso de que se debe escoger en dónde dice "Body", seleccionamos raw y a la final escogeremos el formato JSON, tal como nos aparece en los siguientes ejemplos:

    {
        "name": "John",
        "surname": "Doe",
        "country": "United States",
        "occupation": "It Administrator",
        "profession": "Developer",
        "age": 30
    },
    {
        "name": "John",
        "surname": "Smith",
        "country": "United States",
        "occupation": "Support Assitant",
        "profession": "Developer",
        "age": 25
    },
    {
        "name": "James",
        "surname": "Dvorak",
        "country": "United States",
        "occupation": "Senior Engineer",
        "profession": "Developer",
        "age": 35
    }
 
Después de haber realizado cada uno nuestro proceso de almacenamiento en la base de datos, el usuario debe conocer y saber, que el tipo de respuesta es de tipo 200 (OK), acompañado de otra clase de respuesta, si no estamos mal, nos agrega el ID correspondiente a cada elemento.
 
Fig.2  - Consumo de la API Rest usando POST arrojando una respuesta HTTP 200
 
Si queremos arrojar todos los elementos almacenados de nuestra base de datos, basta con escribir la dirección cambiando por un sólo elemento que aparece a continuación:
 
localhost:8080/api/basicCrud/all
 
Lo que aparecerá a continuación es lo siguiente:

[
    {
        "id": 1,
        "name": "John",
        "surname": "Doe",
        "country": "United States",
        "occupation": "It Administrator",
        "profession": "Developer",
        "age": 30
    },
    {
        "id": 2,
        "name": "John",
        "surname": "Smith",
        "country": "United States",
        "occupation": "Support Assitant",
        "profession": "Developer",
        "age": 25
    },
    {
        "id": 3,
        "name": "James",
        "surname": "Dvorak",
        "country": "United States",
        "occupation": "Senior Engineer",
        "profession": "Developer",
        "age": 35
    }
]

Si no existe cualquier dato almacenado, nos arrojará un error del tipo 404, acompañado del siguiente mensaje:
"Message: Nothing to found here"

Ahora bien, para poder buscar un dato en concreto, basta con seleccionar en el Postman la opción GET y pegar la siguiente dirección; en esta situación vamos a buscar todos los elementos que tengan con el nombre de John:
 
 localhost:8080/api/basicCrud/query?name=John

Para borrar un elemento en nuesta base de datos, solamente hay que escribir en la barra de direcciones de Postman:

localhost:8080/api/basicCrud/3