码迷,mamicode.com
首页 > Windows程序 > 详细

Restful API

时间:2017-12-16 11:18:00      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:rest   state   ack   system   print   路径   用户数   pre   get   

restful全称:reprezentational state transfer,它是一种设计风格,面向的是资源

既然restful面向资源,那URL作为资源定位符也应当设计为代表资源,例如:

localhost:8080/users : 用户资源列表;

users是一个名词,它表示用户资源列表,区别于传统的: getUsers等;

更多示例:

localhost:8080/users/1 : 单个用户,ID为1

那我们又会有疑惑,增删改操作呢?在restful风格中,增删改不在URL地址中展示,希望展示给用户的是一个简单的资源地址,而增删改操作通过请求method来区分,看一个简单的示例就明白了:

/**
 * restful
 */
@RestController
@RequestMapping(value = "users")
public class UserController {
    
    /**
     * 获取列表
     * @return
     */
    @RequestMapping(value = "", method = RequestMethod.GET)
    public String getUsers(){
        System.out.println("获取用户数据列表");
        return "获取用户数据列表";
    }
    
    /**
     * 获取单个用户
     * @param id
     * @return
     */
    @RequestMapping(value = "{id}", method = RequestMethod.GET)
    public String getUser(@PathVariable Long id){
        System.out.println("获取单个用户数据");
        return "获取单个用户";
    }
    
    /**
     * 创建用户
     * @param user
     * @return
     */
    @RequestMapping(value = "user", method = RequestMethod.POST)
    public String createUser(@RequestBody User user){
        System.out.println("创建用户");
        return "创建用户";
    }
    
    /**
     * 更新用户
     * @param id
     * @param user
     * @return
     */
    @RequestMapping(value = "{id}", method = RequestMethod.PUT)
    public String updateUser(@PathVariable(value="id") long id, @RequestBody User user){
        System.out.println("更新用户");
        return "更新用户";
    }
    
    /**
     * 删除用户
     * @param id
     * @return
     */
    @RequestMapping(value = "{id}", method = RequestMethod.DELETE)
    public String deleteUser(@PathVariable Long id){
        System.out.println("删除用户");
        return "删除用户";
    }
}

我们看到,我们这里都用了名词 + method + 路径参数绑定,每一个URL指向一种资源,而不是把URL看成接口。

而ajax将通过资源地址,以及method的区分,来进行对应的操作

Restful API

标签:rest   state   ack   system   print   路径   用户数   pre   get   

原文地址:http://www.cnblogs.com/lay2017/p/8045355.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!