Я хотел создать обработчик GET-запроса, который принимает на вход несколько параметров. Поэтому я решил передать объект Map в качестве параметра запроса. Он работает нормально, когда я запускаю свой контроллер в браузере, как http://localhost: 8080 / app / getReq? Key1 = value1 , но мой SwaggerUI интерпретирует это поле как объект и создает URL-адрес как http://localhost: 8080 / приложение / getReq имяПеременной = key1 = value1 . Не совсем уверен, почему swaggerUI неправильно интерпретирует объект карты в параметре Request.
@RequestMapping(path = "app", method = RequestMethod.GET, produces = "application/json")
@ApiOperation(value = "To fetch details based on the given key value mappings", produces = "application/json")
public ResponseEntity<ResponseObj> fetchRecords(@RequestParam(required = true) Map<String, String> columnMap) {
На данный момент я вижу следующие обходные пути, но не вижу, что они работают правильно в соответствии со стандартами:
- Отметьте это как метод POST и передайте объект карты как объект Requestbody, но в идеале это должен быть запрос GET, так как я не изменяю состояние ресурса.
- Также я могу сохранить этот объект Map в RequestBody в GET-запросе, но опять же, это не стандартный способ отправки тела запроса в GET-запросе.
Пожалуйста, дайте мне знать, если вы найдете лучшее решение для этой проблемы, чтобы справиться с этим правильно.