同福

SpringBoot 项目 RESTFul 接口的 GET变量、POST变量、PATH变量、上传文件变量

介绍

介绍

使用 SpringBoot 开发 RESTFul 风格的接口是很方便的,通过 @RestController 注解就可以将对象的方法以 RESTFul 风格发布出去

今天我们来学习如何在 @RestController 里使用 GET变量、POST变量、PATH变量、上传文件变量

教程

GET变量

就是 QueryString 里面的参数

@RequestMapping("/user")
public User responseUser(
    @RequestParam(value = "id") Integer id    
){
    EntityManager entityManager = new EntityManager(ds);
    User user;
    user = entityManager.createUser(id);
    
    return user;
}

POST变量

就是 HTTP Body 里面的参数

@RequestMapping(value = "/user", method = RequestMethod.POST)
public User responseUser(
    @RequestParam(value = "id") Integer id
){
    EntityManager entityManager = new EntityManager(ds);
    User user;
    user = entityManager.createUser(id);

    return user;
}

PATH变量

就是 Request URI 里面的参数

@RequestMapping(value = "/user/{id}")
public User responseUser(
    @PathVariable(value = "id") Integer id
){
    EntityManager entityManager = new EntityManager(ds);
    User user;
    user = entityManager.createUser(id);

    return user;
}

上传文件变量

上传文件一定是 POST 请求

@RequestMapping(value = "/user", method = RequestMethod.POST)
@ResponseBody
public Map<String, String> responseUser(
        @RequestParam("file") MultipartFile file
        ){
    Map<String, String> map = new HashMap<>();

    try{
        map.put("originFilename", file.getOriginalFilename());
        map.put("name", file.getName());
        map.put("type", file.getContentType());
        map.put("size", String.format("%s", file.getSize()));
    }
    catch (Exception e){
        e.printStackTrace();
    }
    return map;
}