Spring Boot - Restful API

  • 上传文件
    • 首先要设置consumes为multipart/form-data(上传文件肯定是这个)
      • @PostMapping(value="/files", consumes=MediaType.MULTIPART_FORM_DATA_VALUE)
    • 在方法中写@RequestParam("file") MultipartFile file参数,然后在方法中就可以直接使用MultipartFile的流保存文件了,file为调用者上传文件时的request form中指定的名字(name)
      • public Map<String, Object> uploadFile(@RequestParam("file") MultipartFile file)
      • MultipartFile可以直接getInputStream()获取输入流
      • curl可以使用-F参数指定文件上传
  • 返回文件、图片等二进制文件/流
    • 首先要设置produces为MediaType.IMAGE_JPEG_VALUE等参数
      • @GetMapping(value="/{id}/icon", produces=MediaType.IMAGE_JPEG_VALUE)
    • 方法返回时返回一个字节数组,注解会自动转换为图片等格式(其实就是设置http response的媒体类型、长度等??)
  • 从请求中获取信息的方法
    • 从URL中获取其路径的一部分
      • 首先需要在RequestMapping做映射,之后在方法中可以通过注解使用映射的变量
        • @GetMapping("/{id}") public TvSeries getOne(@PathVariable("id") Integer id){}
      • 可以写多个
        • @PutMapping("/{id}/characters/{cId}")
      • 还可以使用正则表达式限制类型(不符合要求会返回4xx的错误信息,标识请求参数有问题)
        • @PutMapping("/{id:\\d+}")
    • 从POST请求中获取传递来的JSON
      • 给参数前增加@RequestBody注解,Spring会自动把POST的Request Body部分的JSON转换成方法声明的类。如果转换失败会返回4xx错误,表示请求参数有问题。
      • public Object updateOne(@RequestBody TvSeries tvSerives)
    • 从文件上传中获取文件流内容
      • 参考上文

猜你喜欢

转载自www.cnblogs.com/wyp1988/p/10360069.html