Este proyecto es una API de creación de usuarios, desarrollada en Spring Boot 2.7.9, Java 17 y Maven. La API permite crear usuarios junto con una lista de teléfonos. Los usuarios creados se almacenan en una base de datos H2 en memoria.
-
Clonar el repositorio:
https://github.com/mbelduque/nisum-user-api.git
-
Importar el proyecto en el IDE desde el archivo
/nisum-user-api/pom.xml
-
Compilar y empaquetar el proyecto con Maven, o desde el IDE:
1. Maven: cd repositorio mvn clean package
2. IDE: Menú Maven -> userEntity-Api -> lifecycle / clean -> package -> install
-
Iniciar la aplicación con Maven, o desde el IDE:
1. Maven: mvn spring-boot:run
2. IDE: Menú Run -> Run -> UserApiApplication
-
Una vez que la aplicación se ha iniciado correctamente, podemos probar la API, utilizando alguna herramienta como Postman o curl. Por ejemplo, podemos enviar una solicitud POST al endpoint con el cuerpo JSON que contenga los datos del usuario que queremos crear. La respuesta debe incluir un código de estado HTTP 201 y los datos del usuario recién creado. (se adjunta la colección de Postman en la raíz del proyecto)
-
También podemos probar las otras operaciones de la API (GET, POST) utilizando las URL correspondientes y los parámetros necesarios.
La documentación de la API se puede acceder en la URL donde se encuentra la interfaz de Swagger para probar los endpoints, igualmente para acceder a la base de datos y validar la persistencia se debe ingresar a través de la consola de H2
- Endpoint: http://localhost:8080/api/users
- Swagger: http://localhost:8080/swagger-ui/index.html
- H2 console: http://localhost:8080/h2-console
- usuario: nisum
- contraseña: nisum
La API valida los datos enviados en las peticiones de creación de usuarios. Sí se envían datos incorrectos o incompletos, se recibirá una respuesta de error con un mensaje indicando cuál fue el problema.
- Sí el email ya está registrado en la base de datos
409 CONFLICT
- Sí el email tiene un formato incorrecto
400 BAD REQUEST
- Sí la contraseña tiene un formato incorrecto
400 BAD REQUEST
Obtiene la lista de usuarios y devuelve el estado HTTP 200
, junto con los datos de los usuarios registrados.
Endpoint: /api/users
Método HTTP: GET
Headers:
Content-Type
:application/json
Cuerpo de la respuesta:
[
{
"id": "string",
"name": "string",
"email": "string",
"password": "string",
"phones": [
{
"number": "string",
"citycode": "string",
"countrycode": "string"
}
],
"created": "date",
"modified": "date",
"lastLogin": "date",
"token": "string",
"isActive": "boolean"
}
]
Crea un nuevo usuario y devuelve el estado HTTP 201
, los datos del usuario recién creado, y campos adicionales.
Endpoint: /api/users
Método HTTP: POST
Headers:
Content-Type
:application/json
Cuerpo de la petición:
{
"name": "string",
"email": "string",
"password": "string",
"phones": [
{
"number": "string",
"citycode": "string",
"countrycode": "string"
}
]
}
Cuerpo de la respuesta:
[
{
"id": "string",
"name": "string",
"email": "string",
"password": "string",
"phones": [
{
"number": "string",
"citycode": "string",
"countrycode": "string"
}
],
"created": "date",
"modified": "date",
"lastLogin": "date",
"token": "string",
"isActive": "boolean"
}
]
En el siguiente diagrama se muestra la estructura del proyecto y la arquitectura de la API: