Spring-Boot Restful API 笔记

本文详细介绍了如何使用Spring Boot框架中的@RestController、@GetMapping、@PostMapping等注解来设计和实现RESTful风格的API接口,包括GET、POST、PUT、DELETE四种请求方式的具体应用,以及如何处理请求参数和响应数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RestController

Get
  • 使用@RestController标注在一个控制器类上,再使用@RequestMapping(path)指定映射地址,这个控制器类下的所有方法映射到这个地址下
  • 在具体方法上标注@GetMapping表明这是一个Get请求api,这个注解的参数可以填地址,一般是指定条件,如按id查询,参数就是/{id},然后在方法的参数前标注@PathVariable,使路径中的参数映射到方法中.
  • 如果需要很多参数,就使用@QueryParam,此时在访问api时需要以参数形式写url(即?和&添加参数)
  • 如果返回的是JavaBean,框架会自动将其转换成json形式,如果想设置json显示各种数据格式,在配置文件中的spring.jackson下的属性修改
  • 可以使用正则表达式规定路径
Post
  • post使用@PostMapping,然后在方法参数前加@RequestBody,spring会将传入的json数据转换为参数类型的JavaBean对象实例
  • 如果转换失败,会返回4xx的错误消息,表示请求参数有问题
Put
  • put使用@PutMapping,put方法既可以有post的传入data,也可以有get方法的路径条件值,即该注解标注的方法的方法参数可以有@PathMapping@RequestBody
Delect
  • delete使用@DeleteMapping,标注的方法参数可以有路径条件值,HttpServletRequest,和使用@RequestParam标注的请求中的参数值,例如 delectOne(@PathVariable int id,HttpServletRequest request,@RequestParam(value="delect_reason",required=false) String delectReason,其中delect_reason可以使用类get的方法在请求url后?delect_reason=...,也可以类post的在请求数据中设置
同源问题解决

spring-boot的同源解决是添加一个请求过程的配置,spring 4.2 可以在配置类继承WebMvcConfigurerAdapter,然后重写其中一个抽象方法,
`@Override
public void addCorsMappings(CorsRegistry registry) {

    registry.addMapping("/**")
            .allowCredentials(true)
            .allowedHeaders("*")
            .allowedOrigins("*")
            .allowedMethods("*");

}`

4.2以后上面的类被废弃,改实现WebMvcConfigurer接口,然后还是实现一样的方法

数据校验

  • 可以在传入方法内部对传入参数进行验证
  • 使用JSR303的注解验证,将注解标注在JavaBean中的具体字段前.下面是对一些常用的类型的校验注解
    FtBMTS.md.png
  • @Valid称为级联校验,例如加载bean上面,表明bean内部属性需要校验,写在集合类前,表明集合内每个元素需要校验,如果bean前或方法参数前没有这个注解,bean内部的校验注解没有用
  • 注解的位置可以写在成员变量,getter/setter,类上面
  • 这些注解的运用有很多方式,可以直接按需求google
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值