基于Restful风格的springboot开发文档

基于Restful风格的springboot开发文档
1:SpringBoot框架构建
2:SpringBoot–Json处理
3:SpringBoot–传递参数
4:SpringBoot–参数校验
5:SpringBoot构建RestFulApi
6:SpringBoot使用Swagger2构建的API文档

1.SpringBoot框架构建:
(1)新建springBoot框架 file—>New—>Project–>Spring Initializr

(2)SpringBoot骨架搭建

(3)选择项目保存路径

(4)进入项目 删除HELP.md/mvnw/mvnw.cmd

(5)配置本地仓库路径(需要安装maven)

(6)修改pom.xml文件 更改编码格式:
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

需要注意:一个继承spring-boot-starter-parent,两个依赖,spring-boot-starter-web 是web项目依赖必须,spring-boot-starter-test 是spring boot项目单元测试依赖

(7)自动代码补全/自定义快捷键 方便Springboot搭建

(8)配置华为云镜像加速

(9)查看maven的保存路径

(10)项目启动 直接进入SpringBoot项目启动类 :DemoApplication 显示tomcat start 即表明SpringBoot启动成功

(11)进入本地8080端口 发现error page 这是正常的 因为什么东西都还没写

(12)在DemoApplication同级目录新建一个HelloController(用get请求方式 只是一个示例)重启启动类

(13)重新打开8080端口 如图 SpringBoot基本框架已经算搭建好了

2.SpringBoot–Json处理:

SpringBoot对于JSON的支持

(1)引入Lombok 这里讲一下lombok作用:有了Lombok 实体类不需要写set/get方法 不要写无参/有参构造方法 在pom.xml中添加Lombok依赖

org.projectlombok lombok 1.16.20

(2)然后进入Setting–>Plugins 下载Lombok插件

Lombok:
@Data //get 、set方法
@AllArgsConstructor //所有参数的有参数构造函数
@NoArgsConstructor //无参数构造函数

(3)示例:
这里写一个实体类

根据实体写一个对应的控制器CarController:

如图 请注意:@RestController 注解,等于@Controller 与 @ResponseBody 一起使用
@requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说:application/json或者是application/xml等,一般情况下来说常用其来处理application/json类型

(1)测试获取单个对象json
开启postman,设置发出get请求,请求地址:
http://localhost:8080/car/findone 如图显示:

(2)测试获取集合多个对象json
开启postman,设置发出get请求,请求地址:
http://localhost:8080/car/getall 如图显示:

3.SpringBoot–传递参数:

第一类:请求路径传参
@RequestParam 获取查询参数。即url?name=value 这种形式
@PathVariable 获取路径参数。即url/{id} 这种形式
(3)传递参数获取单个json:

地址栏输入:http://localhost:8080/car/getcar2/五菱?id=1

第二类:@RequestBody参数

用postman测试: 请求参数,选择body,选择 raw方式,发送JSON(application/json)请求
(4)测试传递json参数获取单个对象json

第三类:Body参数,无注解
(5)修改Controller CarController新增接收封装对象参数,返回单个及多个对象方法

测试传递普通body参数获取单个对象json
开启postman,设置发出post请求,请求地址:
http://localhost:8080/car/getcar4
请求参数,选择body 如图:

4.SpringBoot 参数校验
(1)PathVariable路径请求参数校验
@RequestMapping("/valid/{group:[a-zA-Z0-9_]+}/{userid}")
public String valid1(@PathVariable(“group”) String group,
@PathVariable(“userid”) String userid){
return group+":"+userid;
}
尝试postman发送http://localhost:8080/car/valid/a8799/guoke

(2)RequestParam方法请求参数校验(示例)

注意:需要在Controller指定@Validated注解

…参数校验有很多 就不一一演示了
5.SpringBoot构建RESTful API

RESTful是一种软件架构风格!
RESTful架构风格规定,数据的元操作,即CRUD(create, read, update和delete,即数据的增删查改)操作,分别对应于HTTP方法:
GET用来获取资源,
POST用来新建资源(也可以用于更新资源),
PUT用来更新资源,
DELETE用来删除资源,
这样就统一了数据操作的接口,仅通过HTTP方法,就可以完成对数据的所有增删查改工作

(1)RESTful接口设计

示例:以用户数据的基本操作来进行restful接口设计
HTTP协议请求方法 SpringBoot注解 URL 功能说明
POST @PostMapping /users 创建一个用户
GET @GetMapping /users 查询用户列表
GET @GetMapping /users/id 根据id查询一个用户
PUT @PutMapping /users/id 根据id更新一个用户
DELETE @DeleteMapping /users/id 根据id删除一个用户

(2)用户实体bean创建

(3)创建Controller UserController
package com.example.demo;

import com.example.demo.bean.User;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {
/**
* 返回同步列表
/
private List listUser= Collections.synchronizedList(new ArrayList());
/
**
* 获取全部用户信息
* @return
*/
@GetMapping("/")
public List getUserList(){
return listUser;
}

/***
 * 新增用户
 * @param user
 * @return
 */
@PostMapping("/")
public String createUser(User user) {
    listUser.add(user);
    return "success";
}

/***
 * 获取指定id用户信息
 * @param id
 * @return
 */
@GetMapping("/{id}")
public User getUser(@PathVariable("id")Long id) {
    for (User user : listUser) {
        if(user.getId()==id) {
            return user;
        }
    }
    return null;
}
/**
 * 更新指定id用户信息
 * @param id
 * @param user
 * @return
 */
@PutMapping("/{id}")
public String updateUser(@PathVariable("id") Long id,User user) {
    for (User user2 : listUser) {
        if(user2.getId()==id) {
            user2.setName(user.getName());
            user2.setAge(user.getAge());
        }
    }
    return "success";
}

/***
 * 删除指定id用户
 * @param id
 * @return
 */
@DeleteMapping("/{id}")
public String deleteUser(@PathVariable("id") Long id) {

    listUser.remove(getUser(id));
    return "success";

}

}

(4)Postman测试RESTful接口

新增用户(insert–>post)
Post:http://localhost:8080/users/

获取用户全部信息(select–>get)
Get http://localhost:8080/users/

获取指定id用户信息(select where–>get)
Get: http://localhost:8080/users/2

更新指定id用户信息
put http://localhost:8080/users/id

删除指定id用户信息
delete http://localhost:8080/users/id

restful风格较于传统风格:

6.SpringBoot使用Swagger2构建的API文档
(1)添加依赖 下载时间较长 即使配置镜像依旧较慢 需要耐心等待

io.springfox
springfox-swagger2
2.8.0


io.springfox
springfox-swagger-ui
2.8.0

(2)项目下新建config配置包 包下新建SwaggerConfig配置类

需要说明的是:
@ApiOperation注解来给API增加说明
@Configuration可理解为用spring的时候xml里面的标签
@Bean可理解为用spring的时候xml里面的标签
@ApiImplicitParams
@ApiImplicitParam注解来给参数增加说明
如图:

查看SwaggerAPI文档:
接口文档访问:http://localhost:8080/swagger-ui.html#

已经写好的示例接口:

点开每个接口,可以查看接口详情:

注意:不同版本的Swagger 风格也略有差异 但restful是不变的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值