I am using spring boot rest controller.
I use this Enum :
public enum Lang {
EN,FR
}
my repository :
public List<Items> findByNameContainsAndLang(String name,Lang language);
my controller:
@RequestMapping(value = "/items", method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<ItemModel>> getSearchedItems(
@RequestParam(name = "name", defaultValue = "",required = false) String name,
@RequestParam(name = "language",required = false) Lang language
) {
return ResponseEntity.ok(itemServiceImp.findSearchedItem(name, language));
}
this is my service :
public List<ItemModel> findSearchedItem(String name, Lang language ){
List<ItemModel> lst=null;
lst = itemRepo.findByNameContainsAndLang(name language)
.stream()
.map(this::mapItemModel)
.collect(toList());
return lst;
}
so when I try this path:
http://myUrl/items?name=something&language=EN
that's retrieve the result and return my Data but when I try:
http://myUrl/items?name=something
http://myUrl/items?language=EN
http://myUrl/items
that retrieves 0 data and an empty List
Does anybody has an idea ,despite I use require=false in the @Requestparam
Any help ? Thank you in advance