#spring #spring-rest
#весна #spring-rest
Вопрос:
Я разработал Spring API / getFileData, который принимает три параметра URI, а именно. businessDate/fileName/RecordID. Возможно, что любая из них может быть передана как null. Но я все равно хочу, чтобы мой API работал и в этом случае. Как я могу этого добиться?
Я пробовал использовать @GetMapping("getFileData/{businessDate}/{fileName}/{recordId}", "getFileData/{businessDate}//", "getFileData/{businessDate}/{fileName}/")
.. и так далее подобным образом для всех возможных комбинаций.
@RequestMapping(value = "/getFileData/{businessDate}/{fileName}/{recordId}", method = RequestMethod.GET)
Я хочу, чтобы этот API работал для всех комбинаций параметров URI, если что-то будет упущено. например, кто-то запросил,
/getFileData///22
или
/getFileData/22Dec2018/
или
/getFileData//treasure/22
Комментарии:
1. Рассматривали ли вы возможность передачи json и получения только заданных значений?
2. не могли бы вы предоставить фрагмент кода, пожалуйста.
3. baeldung.com/spring-request-response-body
4. Это для запросов POST.. Я использую GET here.
Ответ №1:
Вы можете сделать это с @RequestParam
помощью типа java.util.Map
.
В вашем дизайне у вас будут различные @PathVariable
параметры в методе контроллера, а также порядок переменных пути /{var1}/{var2}...
создает URL-адрес, поэтому я не думаю, что можно было бы пропустить переменную path в URL-адресе и по-прежнему вызывать тот же метод контроллера.