Мне интересно, как правильно обрабатывать запросы такого типа.У меня есть запросы на удаление из пользовательского интерфейса, и это список идентификаторов, которые являются целыми числами.Таким образом, запрос может выглядеть так:
www.myui.com/delete/1,2,3,4
, который является хорошо отформатированным запросом.Но если запрос по какой-либо причине был получен из запроса curl или почтальона и т. Д., Он может быть отформатирован следующим образом:
www.myui.com/delete/1,,3,4
В этом случае 2-й индекс будет содержать ноль, так как он проверяет целые числа.Однако, если бы мы ожидали список String, это была бы просто пустая строка или n символов пробела, если бы он был отформатирован как / 1, 2,3, 4, поэтому мне пришлось бы перебрать запрос и проверитьесли строка в списке строк является только пробелом и возвращает 404.
Должен ли я делать это в контроллере или разрешить передачу этого типа запроса и в конечном итоге вызвать исключениев дао, так как он собирается попытаться удалить идентификатор, который является либо нулевым, либо просто пробелом, который не существует в БД.
Ниже приведен пример того, как я в настоящее время обрабатываю запрос, который являетсяСписок целых чисел.
@DeleteMapping(value="/delete/{ids}")
public ResponseEntity delete(@PathVariable("ids") List<Integer> ids)
throws DatabaseException {
if (ids.contains(null)) {
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
}
service.delete(ids);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}