Spring Boot - Restful API
2024-10-21 10:15:18
- 基本用法
- @GetMapping与@PostMapping不指定参数时就是指直接使用到controller一级的url就行
- @GetMapping与@PathVariable对应,前者{}中的字符串和后者修饰的变量名对应
- @PostMapping与@RequestBody(仅请求参数时json格式时??)、@RequestParam??对应,Spring会自动把POST的Request Body部分的JSON转换成方法声明的类。如果转换失败会返回4xx错误,表示请求参数有问题。
- @PutMapping可以同时使用@PathVariable和@RequestBody
- @DeleteMapping可以同时使用@PathVariable和@RequestParam,还可以使用HttpServletRequest(Spring Boot会自动帮忙传进来)
- @RequestParam既可以是url后面?跟的参数,也可以是request form里的key-value参数
- @RequestParam有一个required参数,默认为true,如果设为false,就是说这个参数可以不传
- 上传文件
- 首先要设置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参数指定文件上传
- 首先要设置consumes为multipart/form-data(上传文件肯定是这个)
- 返回文件、图片等二进制文件/流
- 首先要设置produces为MediaType.IMAGE_JPEG_VALUE等参数
- @GetMapping(value="/{id}/icon", produces=MediaType.IMAGE_JPEG_VALUE)
- 方法返回时返回一个字节数组,注解会自动转换为图片等格式(其实就是设置http response的媒体类型、长度等??)
- 首先要设置produces为MediaType.IMAGE_JPEG_VALUE等参数
- 从请求中获取信息的方法
- 从URL中获取其路径的一部分
- 首先需要在RequestMapping做映射,之后在方法中可以通过注解使用映射的变量
- @GetMapping("/{id}") public TvSeries getOne(@PathVariable("id") Integer id){}
- 可以写多个
- @PutMapping("/{id}/characters/{cId}")
- 还可以使用正则表达式限制类型(不符合要求会返回4xx的错误信息,标识请求参数有问题)
- @PutMapping("/{id:\\d+}")
- 首先需要在RequestMapping做映射,之后在方法中可以通过注解使用映射的变量
- 从POST请求中获取传递来的JSON
- 给参数前增加@RequestBody注解,Spring会自动把POST的Request Body部分的JSON转换成方法声明的类。如果转换失败会返回4xx错误,表示请求参数有问题。
- public Object updateOne(@RequestBody TvSeries tvSerives)
- 从文件上传中获取文件流内容
- 参考前文
- 从URL中获取其路径的一部分
最新文章
- xamarin(3.9.236)里DATETIMENOW的错误。
- Nancy之基于Nancy.Hosting.Aspnet的小Demo
- laypage
- 算法系列5《SSF33》
- extjs的button控件fireEvent(&#39;click&#39;)无效问题
- leetcode-Consecutive numbers
- metrics实践 (metrics-spring)
- 构建Docker平台【第二篇】安装 Docker
- 微信小程序部署问题总结
- java:产生小数位数为2的随机概率,使得和为1
- [转】Python--遍历列表时删除元素的正确做法
- OpenUDID 和 IDFA 比较
- MySQL之数据备份、pymysql模块
- python之dict
- Tomcat配置虚拟主机、tomcat的日志
- Landsat8 卫星数据下载
- 一本通1649【例 2】2^k 进制数
- Controller、Service、Dao进行Junit单元
- MySQL5.6快速安装【转】
- windows下用nginx配置https服务器
热门文章
- 转 CentOS下面安装RVM+ruby+Rails
- UNITY引擎变量调用产生不必要内存分配
- python+Django创建第一个项目
- 使用C#通过Oracle.DataAccess连接Oracle,部署时需要注意版本问题
- Linux实战教学笔记48:openvpn架构实施方案(一)跨机房异地灾备
- 启动和关闭MySQL服务
- 【BZOJ2780】Sevenk Love Oimaster【广义后缀自动机】
- 解剖Nginx&#183;自动脚本篇(1)解析配置选项脚本 auto/options
- opencv3.3
- 226. Invert Binary Tree 翻转二叉树