zoukankan      html  css  js  c++  java
  • Spring Boot构建RESTful API

    • @Controller:修饰class,用来创建处理http请求的对象
    • @RestController:Spring4之后加入的注解,原来在@Controller中返回json需要@ResponseBody来配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseBody,默认返回json格式。
    • @RequestMapping:配置url映射
    • RESTful API具体设计如下:
    请求类型URL功能说明
    GET /users 查询用户列表
    POST /users 创建一个用户
    GET /users/id 根据id查询一个用户
    PUT /users/id 根据id更新一个用户
    DELETE /users/id
    1. 根据id删除一个用户

    User实体定义:

         private Long id; 
        private String name; 
        private Integer age; 
    
        // 省略setter和getter

    User  restful接口声明

    @RequestMapping(value = "/users")
    public interface UserRestService {
        @RequestMapping(value = "/", method = RequestMethod.GET)
        List<User> getUserList();
    
        @RequestMapping(value = "/", method = RequestMethod.POST)
        String postUser(@ModelAttribute User user);
    
        @RequestMapping(value = "/{id}", method = RequestMethod.GET)
        User getUser(@PathVariable Long id);
    
        @RequestMapping(value="/{id}", method=RequestMethod.PUT)
         String putUser(@PathVariable Long id, @ModelAttribute User user);
    
        @RequestMapping(value="/{id}", method=RequestMethod.DELETE)
        String deleteUser(@PathVariable Long id);
    }

    接口实现

    @RestController
    public class UserRestServiceImpl implements  UserRestService {
    
        static Map<Long, User> users = Collections.synchronizedMap(new HashMap<Long, User>());
    
        @Override
        public List<User> getUserList() {
            List<User> r = new ArrayList<User>(users.values());
            return r;
        }
    
        @Override
        public String postUser(@ModelAttribute User user) {
            users.put(user.getId(), user);
            return "success";
        }
    
        @Override
        public User getUser(@PathVariable Long id) {
            return users.get(id);
        }
    
        @Override
        public String putUser(@PathVariable Long id, @ModelAttribute User user) {
            User u = users.get(id);
            u.setName(user.getName());
            u.setAge(user.getAge());
            users.put(id, u);
            return "success";
        }
    
        @Override
        public String deleteUser(@PathVariable Long id) {
            users.remove(id);
            return "success";
        }
    }

    验证:

    以创建用户为例

    response

  • 相关阅读:
    CentOS7 下更改源
    /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
    Centos7 安装wget命令
    Cannot find a valid baseurl for repo: base/7/x86_6 解决方法
    python 启动新进程执行脚本
    MongoDB数据类型
    pymongo.errors.OperationFailure: Authentication failed.
    python连接MongoDB(有密码有认证)
    Mongodb 创建管理员帐号与普通帐号
    python连接MongoDB(无密码无认证)
  • 原文地址:https://www.cnblogs.com/ilinuxer/p/6444804.html
Copyright © 2011-2022 走看看