Я создаю API, который получает следующие входные данные и предоставляет следующие выходные данные. 
Я уже создал рабочий метод для "нового":
@RequestMapping(value = "/new", method = RequestMethod.GET)
public StartedGame startGame(HttpSession session){
List<Game> games = getCurrentGames(session);
Game newGame = new Game(wordList);
games.add(newGame);
return new StartedGame(newGame);
}
Что возвращает следующий JSON:
{
"gameId": "kvmuyw",
"word": "_______"
}
Однако мне нужно создать функцию для предположений. Мне не повезло. У меня это заголовок функции, но он не кажется правильным ...
@RequestMapping(value = "/guess", method = RequestMethod.POST, consumes = "application/json", produces = "application/json")
public Game makeGuess(@RequestBody String json, HttpSession session)
Я получаю ошибку 404. То, что я ожидаю, показано выше на картинке.
Какой URL вы попали? Какой json вы отправили? Как ты его отправил? Когда ваше приложение запускалось, видели ли вы в журналах, что оно сопоставило конечную точку / guess?
@JBNizet Вот некоторые результаты с пояснениями: stackoverflow.com/questions/50071720/…
@ohbrobig вы сказали, что получаете ошибку 404, тогда в этом вопросе вы говорите в заголовке, что получаете ошибку 415, а в выводе, который вы вставили, говорится об ошибке 500 ...




Вы, наверное, хотите что-то вроде
@RequestMapping(value = "/guess", method = RequestMethod.POST,
consumes = "application/json", produces = "application/json")
public Game makeGuess(@RequestBody Guess guess){
// ..
}
@Data // <- this assuming you're using Lombok - add required accessors if not
public class Guess {
String game;
String guess;
}
Однако, если вы получаете 404 Not Found, ваши проблемы связаны не с определением метода, а с тем, что вы отправляете сообщение по неправильному URL-адресу.
Я пробовал использовать объект Guess (с геттерами и сеттерами) ... возможно, я отправляю сообщение на неправильный URL. Какой будет подходящий URL-адрес с помощью описанного выше метода?
Предположим, что объект JSON похож на те, что на картинке выше.
Правый URL @ohbrobig - /guess, при условии, что у вас нет дополнительных сопоставлений на уровне контроллера или приложения. Если да, то это будет /controllerurlvalue/guess или /applicationurlvalue/controllerurlvalue/guess. Вы можете увидеть зарегистрированные URL-адреса из журналов при запуске приложения Spring.
@ohbrobig, если вы получаете ошибку 500 с nullpointerexception, как вы утверждаете здесь, это означает, по крайней мере, что ваше сопоставление URL-адресов работает, так что, видимо, у вас это работает