Я пытаюсь создать простую конечную точку REST для DELETE.Код выглядит следующим образом:
@RequestMapping(value = "/api/chat/v1/user", produces =
MediaType.APPLICATION_JSON_VALUE)
public class UserApiController {
@DeleteMapping(value = "channels/{channelSid}")
@ResponseStatus(value = HttpStatus.NO_CONTENT)
public Map<String, String> deleteChannel(@RequestHeader(HttpHeaders.AUTHORIZATION) String authorization, @PathVariable String channelSid) {
UserInfo userInfo = userTokenDecryptor.parseAndValidate(authorization);
chatService.deleteChannel("", channelSid);
return Map.of(
"chat_channel_sid", channelSid
);
}
}
Я пытаюсь получить значение, переданное в URL, вместо channelSid
в качестве параметра метода String channelSid
.Как я понимаю, Spring должен делать это сопоставление, когда оба имени совпадают.
Ниже приводится список cURL, в который я играю:
curl -X DELETE \
http://localhost:8082/api/chat/v1/user/channels/123456789 \
-H 'Accept: */*' \
-H 'Authorization: kjhbdfakjhgsdhkj' \
-H 'Cache-Control: no-cache' \
-H 'Connection: keep-alive' \
-H 'Host: localhost:8082' \
-H 'content-length: '
Теперь, чтобы проверить функциональностьиз других компонентов мне нужно отладить этот код, но во время работы с отладчиком IntelliJ Idea я получаю следующий ответ:
{
"timestamp": "2019-07-03T09:38:04.640+0000",
"status": 500,
"error": "Internal Server Error",
"message": "Invalid parameter name \"\"",
"path": "/api/chat/v1/user/channels/123456789/"
}
Исключение на сервере следующее:
java.lang.reflect.MalformedParametersException: Invalid parameter name ""
at java.base/java.lang.reflect.Executable.verifyParameters(Executable.java:382) ~[na:na]
at java.base/java.lang.reflect.Executable.privateGetParameters(Executable.java:412) ~[na:na]
at java.base/java.lang.reflect.Executable.getParameters(Executable.java:353) ~[na:na]
at org.springframework.core.StandardReflectionParameterNameDiscoverer.getParameterNames(StandardReflectionParameterNameDiscoverer.java:39) ~[spring-core-5.1.6.RELEASE.jar:5.1.6.RELEASE]
Дополнительная информация: ЭТОГО НЕ происходит, когда я запускаю сервер вместо отладки.Эта проблема относится только к отладке.