Printemps api rest champs de filtre dans la réponse
Je suis à l'aide de printemps de l'api rest 4.x. Nous avons une exigence de filtrer les champs de la réponse basée sur les paramètres de la requête.
Mon objet Utilisateur:
private class UserResource {
private String userLastName;
private String userFirstName;
private String email;
private String streetAddress;
}
E.g. URL: curl -i http://hostname:port/api/v1/users?fields=firstName,lastName.
Dans ce cas j'ai besoin de retourner uniquement les champs qui sont dans la demande de param "champs". Sortie JSON doit contenir uniquement firstName, lastName.
Il y a plusieurs façons de filtrer les champs Jackson en fonction de l'objet. Dans mon cas, j'ai besoin de filtrer dynamiquement par l'adoption de la liste des champs à Jackson sérialiseur.
Merci de partager quelques idées.
Vous devez vous connecter pour publier un commentaire.
Merci Ali. Il est d'une grande aide. Permettez-moi de le mettre en œuvre aujourd'hui. Je vais poster le résultat
Utiliser un
ResponseBodyAdvice
afin de modifier la réponse avant qu'il a été écrit à la réponse HTTP. DansbeforeBodyWrite(...)
méthode, vous avez accès à l'actuelleServerHttpRequest
dont vous pouvez lire lefields
valeur. Votre corps conseils pourraient ressembler à ce qui suit:@JsonInclude
pour supprimer leempty
les champs de la réponseIl semble que cela est pris en charge au Printemps 4.2 comme par https://jira.spring.io/browse/SPR-12586 via Jackson
JsonFilter
(si le tableau est de retourner une erreur sur le moment).