Spring Boot构建RESTful API

Posted ilinux_one

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于Spring Boot构建RESTful API的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot构建RESTful API

Spring Boot整合Swagger2构建RESTful API

spring boot 1.5.4 集成Swagger2构建Restful API(十八)

Spring Boot中使用Swagger2构建强大的RESTful API文档

Spring Boot中使用Swagger2构建强大的RESTful API文档

Spring Boot中使用Swagger2构建强大的RESTful API文档