Как я могу использовать {в пределах значения (или пути) с @RequestMapping - PullRequest
0 голосов
/ 27 апреля 2018

Пример URL-адреса:

апи / v1 / запроса? Запрос = {вверх устройство = "DEVICE_1"}

, где Device_1 является @ PathVariable

Я проверяю это с помощью:

@RequestMapping(value="/api/v1/query?query=up{device=\"${device}\"}",
                method = RequestMethod.GET) String 
getLastPosting(@PathVariable("device") String device);

Ответ:

Произошла непредвиденная ошибка (тип = Внутренняя ошибка сервера, Статус = 500). содержание: метод не разрешен

Есть идеи о правильном формате?

1 Ответ

0 голосов
/ 27 апреля 2018

Этот URL действительно выглядит очень странно, также эти скобки будут источником ошибки в URL, их нужно будет заменить на %7B и %7D

Я думаю, вам лучше использовать более простой , такой как, например:

api/v1/query?query=up&device=Device_1

А затем объявите свой контроллер следующим образом:

@RequestMapping(value="/api/v1/query", method = RequestMethod.GET) 
public String getLastPosting(@RequestParam(value="query") String query, 
                             @RequestParam(value="device") String device) {
}

Другие параметры будет использовать Юникод для фигурных скобок (, но я не рекомендую эти )

/api/v1/query=up%7Bdevice="Device_1"%7D

@RequestMapping(value="/api/v1/{query}",method = RequestMethod.GET)
public String getLastPosting2(@PathVariable("query") String query){

  // query is query=up{device="Device_1"}
  // you would need to parse it to extract the device name

}

или

/api/v1/query=up%7Bdevice="Device_1"%7D

@RequestMapping(value="/api/v1/query",method = RequestMethod.GET)
public String getLastPosting3(@RequestParam("query") String query){

  // query is up{device="Device_1"}
  // you would need to parse it to extract the device name

}
...