根据法律,每种方法都有其目标:
发布以插入记录,
获取/显示记录,
把修改记录,
删除以删除记录
我做了下面的代码,往数据库中添加了一本新书,所以我应该使用post方法,但是我用get方法做了,我想将它转换为post方法,怎么做?
@RequestMapping(value = "/add/{id}/{name}/{author}/{price}")
public Book addBook(@PathVariable int id, @PathVariable String name, @PathVariable String author,
@PathVariable long price) {
Book book = new Book();
book.setId(id);
book.setName(name);
book.setAuthor(author);
book.setPrice(price);
bookService.saveBook(book);
return book;
}
org.springframework.web.bind.annotation.RequestMapping
只需通过元素在注解中添加所需的 HTTP 方法method
:或者,您可以在请求正文中而不是在 URL 中发送数据:
从 Spring 4.3 版开始,可以使用注释
org.springframework.web.bind.annotation.PostMapping
,它充当以下操作的快捷方式@RequestMapping(method = RequestMethod.POST)
:其他作为快捷方式的注释:
这是正确的,但是对于根据 HTTP 协议(REST 所基于)的 GET,它的数据输入是通过 GET 方法中的参数,但在 POST 中它是通过一个主体:
例子:
控制器:
在 HTTP 状态下,创建记录也被解析为 201 而不是 200