Вот так должен выглядеть ваш контроллер (работает следующий код):
@GetMapping(path = "/movies")
public Movie getMovie() {
Movie movie = new Movie("name", MovieType.English, new Date(), 1, Genre.Action);
return movie;
}
@PostMapping(path = "/movies")
public HttpStatus createMovie(@RequestBody Movie movie) {
repository.save(movie);
return HttpStatus.OK;
}
Объект фильма:
public class Movie {
public String name;
public Date releasedate;
public MovieType type;
public int movie_length;
public Genre genre;
public Movie() {}
public Movie(String name, MovieType type, Date releasedate, int movie_length, Genre genre) {
this.name = name;
this.type = type;
this.releasedate = releasedate;
this.movie_length = movie_length;
this.genre = genre;
}
}
MovieType:
public enum MovieType {
Hindi("Hindi"), English("English"), Telugu("Telugu"), Malyalam("Malyalam"), Kannada("Kannnada");
private String name;
public String getName() {
return name;
}
MovieType(String name) {
this.name = name;
}
}
Жанр:
public enum Genre {
Daram("Drama"), Action("Action");
private String name;
public String getName() {
return name;
}
Genre(String name) {
this.name = name;
}
}
Примечания:
- Передавать фильм как объект - не используйтеJsonObject для анализа json
- Используйте URL-соглашения, как указано выше (т. Е. Фильмы как для GET, так и для POST)
- Получите объект фильма с помощью getMovie () и используйте егошаблон для отправки аналогичного объекта в createMovie () с POST.
- Используйте Почтальон или любой другой клиент Rest для проверки вашего кода
Пример запроса POST:
{
"name": "name",
"releasedate": "2018-12-23T10:01:47.056+0000",
"type": "English",
"movie_length": 1,
"genre": "Action"
}
Убедитесь, что вы отправили тело запроса в формате JSON:
Goodluck