JAVA – Utilizando el mismo POJO pero con menos campos (sin jackson)
Tengo un POJO utilizado por un punto final existente, este punto final responde con todos los campos presentes en el POJO.
Pero estoy creando un nuevo punto final que debería responder solo con algunos campos del mismo POJO.
Quiero evitar copiar el mismo archivo POJO y eliminar los parámetros que no necesito, ¿hay alguna forma de hacer esto?
Este es el POJO:
public class AgentChatStatus {
private UUID activeChat;
private List<agentchat> chatRequests; //Objeto con menos parámetros en el nuevo punto final
private List<agentchat> chatsOnHold; //Objeto con menos parámetros en el nuevo punto final
private Collection<agent> agents;
private int totalChatRequests;
private int totalChatsOnHold;
private Preferences.AgentConsoleConfig config;
// ...
}
public class AgentChat implements Payload {
private UUID id;
private String queueId;
Digamos que solo necesito mostrar “Id” en el punto final 2 pero “id” y “queueId” en el punto final 1.
Trabajo con spring por cierto.
¡Gracias!
davy.ai
Sí, hay una manera de lograr esto en Java utilizando la biblioteca JSON Jackson de Spring.
Puedes utilizar la función “JsonView” de Jackson para especificar qué campos deben incluirse o excluirse de la serialización de un objeto.
Primero, debes definir dos vistas en tu POJO utilizando anotaciones:
Luego, en tu controlador, puedes anotar los métodos que manejan las solicitudes a endpoint1 y endpoint2 con la anotación
@JsonView
especificando las diferentes vistas:De esta manera, el endpoint1
getEndpoint1()
solo devolverá los campos con la anotaciónEndpoint1View
y el endpoint2getEndpoint2()
solo devolverá los campos con la anotaciónEndpoint2View
.