URL-адрес меняется, если я не передаю параметры API - PullRequest
0 голосов
/ 12 октября 2019

У меня есть общий API для операций поиска, а также операций get, если я не передаю параметры поиска, URL-адрес которого не меняется.

, например: если поискпараметр передан: localhost: 8080 / api / search? name = harmeet

если параметр поиска не передан: localhost: 8080 / api / search

то, что я хочу, это то, что URL-адрес не должен меняться, передам ли я параметр или нет

, например, , если я не передам параметр, URL-адрес должен быть: localhost: 8080 / api / search? name = ''

Код был написан с использованием весенней загрузки

Ответы [ 2 ]

0 голосов
/ 12 октября 2019

Как я понимаю, вы хотите создать API, который обрабатывает два вызова API.

Например,

http://localhost:8080/search

http://localhost:8080/search?name=hermeet

Я предполагал, что вы уже создали API в бэкэнде ... Правильно !!!

Итак, в вашей логике нет никаких проблем, но параметр, который вы определили в своем методе, является обязательным по умолчанию.

Которые не позволяют передавать нулевое или пустое значение.

Вам просто нужно разрешить свой параметр для работы с обоими случаями. Следующими способами:

  1. Необязательно <'Parameter_Type'> имя_параметра
  2. @ RequestParam (значение = "имя_параметра", обязательно = false) Строковая переменная

Пример:

@GetMapping("/search")
public List<Entity> getSearchResult(@RequestParam(value = "parameter_name", required = false) String variable) {
   if(variable!=null) { 
      // Get Data based on condition.
   } else {
      // Get All Data
   }
}

@GetMapping("/search")
public List<Entity> getSearchResult(@RequestParam("parameter_name") Optinal<String> variable) {
   if(variable.isPresent()) { 
      // Get Data based on condition.
   } else {
      // Get All Data
   }
}
0 голосов
/ 12 октября 2019

То, какой URL-адрес вызывается, зависит от стороны клиента, а не от стороны сервера. Если вы всегда хотите, чтобы значение параметра было чем-то или «», когда оно не передается клиентской стороной, вы можете определить свой метод контроллера следующим образом:

@GetMapping("/api/search")
public Object getName(@Requestparam(value="name",required=false,defaultValue="")String name){
// your logic here
// value of 'name' variable will "" if nothing is passed
}

Просто установите для обязательного поля значение false и используйтеполе defaultValue для установки любого значения по умолчанию, которое вы хотите установить, если параметр не указан в вызове URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...