Implementing Dynamic Filtering for Rest API
Implementing Static Filtering for Rest API
- Dynamic Filtring: Customize filtering for a bean for specific REST Api
- @Jsonfilter with filter Provider
At Conroller class
//********************** DYNAMIC FILTERING***********//
@GetMapping("/Dyfiltering")
public MappingJacksonValue dynamicFiltering() {
SomeBean someBean = new SomeBean("val1", "val2", "val3");
MappingJacksonValue mappingJacksonValue = new MappingJacksonValue(someBean);
SimpleBeanPropertyFilter filter = SimpleBeanPropertyFilter.filterOutAllExcept("field1", "field2");
SimpleFilterProvider filters = new SimpleFilterProvider().addFilter("SomeBeanFilter", filter);
mappingJacksonValue.setFilters(filters);
return mappingJacksonValue;
}
//********************** DYNAMIC FILTERING***********//
At Pojo Entity Class
@JsonFilter("SomeBeanFilter")
public class SomeBean {
private String field1;
private String field2;
private String field3;
public SomeBean(String field1, String field2, String field3) {
this.field1 = field1;
this.field2 = field2;
this.field3 = field3;
}
public String getField1() {
return field1;
}
public String getField2() {
return field2;
}
public String getField3() {
return field3;
}
}
Output
{ "field1": "val1", "field2": "val2" }
Similarlty can use List for filtering
//********************** DYNAMIC FILTERING***********//
@GetMapping("/Dyfiltering-list")
public MappingJacksonValue DynamicfilteringList() {
List<SomeBean> list = Arrays.asList(new SomeBean("value1", "value2", "value3"),
new SomeBean("value4", "value5", "value6"));
MappingJacksonValue mappingJacksonValue = new MappingJacksonValue(list);
SimpleBeanPropertyFilter filter = SimpleBeanPropertyFilter.filterOutAllExcept("field2", "field3");
SimpleFilterProvider filters = new SimpleFilterProvider().addFilter("SomeBeanFilter", filter);
mappingJacksonValue.setFilters(filters);
return mappingJacksonValue;
}
//********************** DYNAMIC FILTERING***********//
Comments
Post a Comment