Нынешняя система, которой я управляю, - это только внешний интерфейс Angular 5 (таким образом, Typescript).Backend не должен иметь значения, но есть команда, в которой они не меняют свои подписи, обрабатывают ошибки и т. Д.: /
Проблема в том, что существует экран поиска, в котором требуется только 1 поле, поэтомукогда я пытаюсь отправить URL-адрес бэкэнду Restful (на самом деле, когда я набираю это .. это не совсем restful, не так ли?)
Мой метод службы Angular:
getSearchByUserResults(first,last,user,eff,term,emp) {
//IF I JUST DO THIS, THEN EMPTY PARAMS ARE SENT AND SOMEHOW THE BACKEND IS NOT SET UP TO HANDLE THAT :/
//var params = "userid=" + user + "&first-name=" + first + "&last-name=" + last + "&eff-date=" + eff + "&term-date=" + term + "&employee-id=" + emp;
//Sending only userid works
//var params = "userid=" + user;
// Send user and first when first name is empty(null) again it does NOT work
var params = "userid=" + user + "&first-name=" + first;
var searchUser = this._searchByUser + params;
return this._http.get(searchUser).map((response: Response) => response.json()).catch(this.handleError);
}
В основном то, что я показываю, в комментариях выше.
Если параметр пустой или нулевой, то я НЕ хочу, чтобы он был добавлен в список параметров, отправляемых на метод контроллера сервера ...
- , еслиuser = 123 отправить http://server.com:9080//rest/config/users?userid=123
- если имя пользователя и имя не пусто отправить http://server.com:9080//rest/config/users?userid=123&first-name=Ted
- Никогда не отправляйте что-либо с пустыми параметрами, как это пустое имя http://server.com:9080//rest/config/users?userid=123&first-name=
Основываясь на этом списке параметров, как я могу сделать это без кучки операторов if, проверяющих null / empty / undefined?
first,last,user,eff,term,emp