Мне нужно реализовать конечную точку поста, которая принимает объект (json). Но некоторые параметры в объекте являются необязательными. Поэтому, когда я пытаюсь сделать вызов API, он не сопоставляется с соответствующим методом.
Показывалось Страница не найдена Ошибка: 404
Тело запроса, которое я отправляю, содержит только два поля, остальные необязательны.
Пойо для объекта
public class Post {
private String owner;
private String activity;
private Boolean edited;
private String clientApp;
private String serviceProvider;
private long id;
private Text text;
public static class Text {
private String text;
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
public String getActivity() {
return activity;
}
public void setActivity(String activity) {
this.activity = activity;
}
public Boolean getEdited() {
return edited;
}
public void setEdited(Boolean edited) {
this.edited = edited;
}
public String getClientApp() {
return clientApp;
}
public void setClientApp(String clientApp) {
this.clientApp = clientApp;
}
public String getServiceProvider() {
return serviceProvider;
}
public void setServiceProvider(String serviceProvider) {
this.serviceProvider = serviceProvider;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public Text getText() {
return text;
}
public void setText(Text text) {
this.text = text;
}
}
Пружинный контроллер:
@RequestMapping(method = RequestMethod.POST, value="/publish/post",consumes = MediaType.APPLICATION_JSON_VALUE)
public String publish(
@RequestBody Post map) {
logger.info("Post method")
return "Completed";
}
Команда Curl:
curl -X POST \
http://localhost:4569/rest/publish/post \
-H 'Content-Type: application/json' \
-d '{
"owner": "Owner of the Company",
"text": {
"text": "Png new image"
}
}'
Полезная нагрузка
{
"owner": "Owner of the Company",
"text": {
"text": "Png new image"
}
}
Контроллер покоя:
@RestController
@RequestMapping("/rest")
public class SocialController {
private static final Logger logger = LoggerFactory.getLogger(SocialController.class);
@RequestMapping(method = RequestMethod.POST, value="/publish/post",consumes = MediaType.APPLICATION_JSON_VALUE)
public String publish(
@RequestBody Post map) {
logger.info("Post method")
return "Completed";
}
}