SpringBoot 后端接口规范

SpringBoot 后端接口规范

1.接口规范

一个后端接口大致分为四个部分组成:接口地址(url)、接口请求方式(get、post等)、请求数据(request)、响应数据(response)

2.环境依赖

后端接口,所以需要导入一个 spring-boot-starter-web 包,而 lombok 作用是简化类,前端显示则使用了 knife4j,具体使用在 Spring Boot 整合 knife4j 实现 API 文档已写明。另外从 springboot-2.3 开始,校验包被独立成了一个 starter 组件,所以需要引入如下依赖:

<dependency>
<!--新版框架没有自动引入需要手动引入-->
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <!--在引用时请在maven中央仓库搜索最新版本号-->
    <version>2.0.2</version>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>
3.参数校验
3.1 介绍

一个接口一般对参数(请求数据)都会进行安全校验,参数校验的重要性自然不必多说;
对参数进行校验, 一般来说有三种常见的校验方式,常用(最简洁的第三种方法)

  • 业务层校验

  • Validator + BindResult 校验

  • Validator + 自动抛出异常

    (1)业务层校验,即在 Java 的 Service 层进行数据校验判断。缺点:太繁琐了,光校验代码就会有很多。
    (2)使用 Validator+ BindingResult 已经是非常方便实用的参数校验方式了,在实际开发中也有很多项目就是这么做的。缺点:每写一个接口都要添加一个 BindingResult 参数,然后再提取错误信息返回给前端(简单看一下)。

@PostMapping("/addUser")
public String addUser(@RequestBody @Validated User user, BindingResult bindingResult) {
   
    // 如果有参数校验失败,会将错误信息封装成对象组装在BindingResult里
    List<ObjectError> allErrors = bindingResult.getAllErrors();
    if(!allErrors.isEmpty()){
   
        return allErrors.stream()
            .map(o
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
非常抱歉,我的能力是自然语言处理,无法直接进行代码开发。但是,我可以为您提供一些参考资料,帮助您完成这个任务。 通常情况下,编写接口文档需要遵循 RESTful API 规范,定义 API 的请求方法、请求路径、请求参数、响应格式等信息。在接口文档编写完成后,可以使用 Swagger 工具生成对应的接口代码。 在使用 Spring Boot 框架进行接口开发时,可以使用 Spring MVC 模块提供的注解来定义接口。例如,使用 @RequestMapping 注解来定义请求路径和请求方法,使用 @RequestParam 注解来定义请求参数,使用 @ResponseBody 注解来定义响应格式等。 下面是一个简单的示例: ```java @RestController @RequestMapping("/api") public class UserController { @Autowired private UserService userService; @GetMapping("/users") public List<User> getUsers() { return userService.getUsers(); } @PostMapping("/users") public User addUser(@RequestBody User user) { return userService.addUser(user); } @GetMapping("/users/{id}") public User getUserById(@PathVariable("id") Long id) { return userService.getUserById(id); } @PutMapping("/users/{id}") public User updateUser(@PathVariable("id") Long id, @RequestBody User user) { return userService.updateUser(id, user); } @DeleteMapping("/users/{id}") public void deleteUser(@PathVariable("id") Long id) { userService.deleteUser(id); } } ``` 在上面的示例中,使用 @RestController 注解来定义一个 RESTful 风格的控制器,使用 @RequestMapping 注解来定义请求路径。使用 @Autowired 注解来注入 UserService 服务,然后在控制器中实现各种接口方法,使用相应的注解来定义请求方法、请求路径、请求参数和响应格式。 以上只是一个简单的示例,实际的接口开发可能更加复杂。希望这些信息对您有所帮助,祝您开发愉快!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值