REST接口规范
REST接口规范
- GET (SELECT):从服务器检索特定资源,或资源列表。
- POST (CREATE):在服务器上创建一个新的资源。
- PUT (UPDATE):更新服务器上的资源,提供整个资源。
- PATCH (UPDATE):更新服务器上的资源,仅提供更改的属性。
- DELETE (DELETE):从服务器删除资源。
首先是四个动作:post、delete、put/patch、get
在RESTful架构中,每个网址代表一种资源(resource),所以网址中
不能有动词
,只能有名词,而且所用的名词往往与数据库的表格名
对应。一般来说,数据库中的表都是同种记录的"集合"(collection),所以API中的名词也应该使用复数
。
举例来说,有一个API提供用户表(users)的信息,则它的路径应该设计成下面这样。
接口尽量使用名词,禁止使用动词,下面是一些例子。
- GET /users:列出所有用户
- POST /users:新建一个用户
- GET /users/ID:获取某个指定用户的信息
- PUT /users/ID:更新某个指定用户的信息(提供该用户的全部信息)
- PATCH /users/ID:更新某个指定用户的信息(提供该用户的部分信息)
- DELETE /users/ID:删除某个用户
- GET /users/ID/animals:列出某个指定用户表的所有用户
- DELETE /users/ID/animals/ID:删除某个指定用户的指定用户
反例:
- /getAllUsers
- /createUser
- /deleteAllUsers
// 获取资源列表
@RequestMapping(value="/users",method=RequestMethod.GET)
public List<User> list(){
...
}
// 根据ID获取资源
@RequestMapping(value="/user/{id}",method=RequestMethod.GET)
public User findById(@PathVariable("id")Integer id){
...
}
// 增加资源
@RequestMapping(value="/user",method=RequestMethod.POST)
public String save(User user){
...
}
// 修改资源
@RequestMapping(value="/user",method=RequestMethod.PUT)
public String update(User user){
...
}
// 根据ID删除资源
@RequestMapping(value="/user/{id}",method=RequestMethod.DELETE)
public String deleteById(@PathVariable("id")Integer id){
...
}