Spring Boot - Restful API
- 基本用法
- @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中获取其路径的一部分
Spring Boot - Restful API的更多相关文章
- 使用 JSONDoc 记录 Spring Boot RESTful API
这个博文可以分为两部分:第一部分我将编写一个Spring Boot RESTful API,第二部分将介绍如何使用JSONDoc来记录创建的API.做这两个部分最多需要15分钟,因为使用Spring ...
- spring boot RESTFul API拦截 以及Filter和interceptor 、Aspect区别
今天学习一下RESTFul api拦截 大概有三种方式 一.通过Filter这个大家很熟悉了吧,这是java规范的一个过滤器,他会拦截请求.在springboot中一般有两种配置方式. 这种过滤器拦截 ...
- Spring Boot & Restful API 构建实战!
作者:liuxiaopeng https://www.cnblogs.com/paddix/p/8215245.html 在现在的开发流程中,为了最大程度实现前后端的分离,通常后端接口只提供数据接口, ...
- 【从0到1,搭建Spring Boot+RESTful API+Shiro+Mybatis+SQLServer权限系统】03、创建RESTful API,并统一处理返回值
本节应用Spring对RESTful的支持,使用了如@RestController等注解实现RESTful控制器. 如果对Spring中的RESTful不太明白,请查看相关书籍 1.创建一个数据对象, ...
- 【从0到1,搭建Spring Boot+RESTful API+Shiro+Mybatis+SQLServer权限系统】06、Mybatis+SQLServer集成
1.增加POM依赖 注意pagehelper插件,我重写过,可以到我的这篇文章了解https://www.cnblogs.com/LiveYourLife/p/9176934.html <dep ...
- 【从0到1,搭建Spring Boot+RESTful API+Shiro+Mybatis+SQLServer权限系统】05、Shiro集成
1.POM文件中加入Shiro和fastJSON依赖 <dependency> <groupId>org.apache.shiro</groupId> <ar ...
- 【从0到1,搭建Spring Boot+RESTful API+Shiro+Mybatis+SQLServer权限系统】04、统一处理异常
本节讨论如何使用Spring的异常处理机制,当我们程序出现错误时,以相同的一种格式,把错误信息返回给客户端 1.创建一些自定义异常 public class TipsException extends ...
- 【从0到1,搭建Spring Boot+RESTful API+Shiro+Mybatis+SQLServer权限系统】01、环境准备
开发环境 windows+STS(一个针对Spring优化的Eclipse版本)+Maven+SQLServer 环境部署 1.安装SQLServer(使用版本2008R2) 自行安装,此处略过 2. ...
- 【从0到1,搭建Spring Boot+RESTful API+Shiro+Mybatis+SQLServer权限系统】02、创建新的SpringBoot项目
1.创建项目 得到项目架构 2.测试项目Web功能 默认端口为8080,运行后,输入localhost:8080/index即可访问到网页 到这里,项目构建成功!
随机推荐
- delphichromiumembedded
Delphi封装的google浏览器内核,使用他可以摆脱ie内核的webbrowser的种种限制 http://download.csdn.net/download/ozhy111/5904995 屏 ...
- Zabbix 源码编译安装
简介: Zabbix 分布式监控系统,源码编译安装记录 ( 记不得是第多少次了 ) 下载地址:http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX ...
- (转)libvirt 部分API 介绍
感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正! 如果转载,请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...
- 从零开始搭建k8s-20180301
yum install -y yum-utils git etcd yum-config-manager --add-repo https://download.docker.com/linux/ce ...
- 使用CocoaPods卡在了"pod setup"界面的解决办法
http://blog.csdn.net/samoy/article/details/51956799 有时候,我们在执行pod install或pod search命令时,会在终端偶现卡在’ ...
- java-tip-HashMap
HashMap的基本查找过程: 先使用key.hashCode()生成哈希值,根据哈希值来确定key存放的位置 找到key在数组中的位置后,再使用key.equals()方法来找到指定的key. 1. ...
- windows server2012安装jdk时报错误代码1603
解决方法:在控制面板中将其卸载,把jdk8换成jdk7就可以安装上了
- C#开发重用方法
获取类型先关信息 GetType()及typeof()
- javascript总结39:DOM 中常用的表单元素的属性
1 常用操作元素: value 用于大部分表单元素的内容获取(option除外) type 可以获取input标签的类型(输入框或复选框等) disabled 禁用属性 checked 复选框选中属性 ...
- ThinkPhp 生成静态页面
//开启静态缓存'HTML_CACHE_ON' => true, //开启缓存'HTML_CACHE_TIME' =>60, //开启缓存时间'HTML_FILE_SUFFIX' => ...