- Java 11
- IDE
- Postman
- json-20220320.jar
Esta actividad complementa la descrita en las clases anteriores: README
-
Generar una Clase de tipo enum con la que simularemos los tipos de cuenta.
public enum AccountType { NOMINA, AHORRO, PLATINUM }
Se recomienda crear un paquete para almacenar este tipo de datos. Ej. package com.wizeline.enums;
-
Generar un nuevo DTO que contenga la información de una cuenta de banco.
public class BankAccountDTO { private long accountNumber; private String accountName; private String user; private double accountBalance; private AccountType accountType; private String country; private boolean accountActive; }
Recuerda generar los getters y setters correspondientes a cada propiedad.
-
Crear una interface dentro del directorio existente: com.wizeline.BO con el metodo a implementar para obtener la información de la cuenta de un usuario.
public interface BankAccountBO { BankAccountDTO getAccountDetails(String user); }
El usuario de quien se quiere recuperar la información se envía como parámetro.
-
Implementar la interface previamente creada, en cuya implementación se generara la información a consultar.
public class BankAccountBOImpl implements BankAccountBO{ @Override public BankAccountDTO getAccountDetails(String user) { return buildBankAccount(user, true); } // Creación de tipo de dato BankAccount private BankAccountDTO buildBankAccount(String user, boolean isActive) { BankAccountDTO bankAccountDTO = new BankAccountDTO(); bankAccountDTO.setAccountNumber(123L); bankAccountDTO.setAccountName("Dummy Account"); bankAccountDTO.setUser(user); bankAccountDTO.setAccountBalance(843.24); bankAccountDTO.setAccountType(AccountType.NOMINA); bankAccountDTO.setCountry("Mexico"); bankAccountDTO.setAccountActive(isActive); return bankAccountDTO; } }
Crea un método privado que construira la información de la cuenta del usuario haciendo uso del DTO (BankAccountDTO) previamente generado. Recuerda los valores que puede almacenar cada tipo de dato.
-
Siguiendo el estilo existente en la clase principal (LearningJava) genera un nuevo context para manejar la solicitud y obtener los datos de una cuenta.
public class LearningJava { /* code.... */ private static BankAccountDTO getAccountDetails(String user) { BankAccountBO bankAccountBO = new BankAccountBOImpl(); return bankAccountBO.getAccountDetails(user); } }
Genera un método privado para hacer la invocación de la clase y método encargados de regresar la información de la cuenta.
curl --location --request GET 'http://localhost:8080/api/[email protected]&password=Pass1'
La petición anterior 👆 se puede importar en Postman siemplemente copiando y pegandola en el apartado Raw text que aparece despues de hacer clic en el boton de importar.
{
"country": "Mexico",
"accountActive": true,
"accountName": "Dummy Account",
"accountType": "NOMINA",
"accountNumber": 123,
"accountBalance": 843.24,
"user": "[email protected]"
}