SpringBoot后端接口编写——Restful风格

一、Restful风格接口

Restful风格的API是一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

在Restful风格中,用同一个请求接口(URL)而用不同的请求方式,这就避免了编写多个不同的URL,通过请求的方式也更容易区分出每个方法的功能。

客户端使用GET、POST、PUT、DELETE 4个表示操作方式的动词对服务端资源进行操作:

GET用来获取资源, POST用来新建资源(也可以用于更新资源), PUT用来更新资源, DELETE用来删除资源;

二、接口的编写

比如在一个UserController中

GET方式
//用户数据查询
    @GetMapping
    private R<?> search(@RequestParam(defaultValue = "1") Integer pageNum,
                        @RequestParam(defaultValue = "10") Integer pageSize,
                        @RequestParam(defaultValue = "") String searchKey){
          
   

        return userService.find(pageNum,pageSize,searchKey);
    }

POST方式
//用户注册
    @PostMapping("/reg")
    public R register(@RequestBody User user){
          
   
       return  userService.insert(user);
    }

PUT方式
//用户更新
@PutMapping
public R<?> modify(@RequestBody User user){
          
   
    return userService.update(user);
}

DELETE方式
//删除用户
    @DeleteMapping("/{id}")
    public R<?> remove(@PathVariable Long id){
          
   
        return userService.delete(id);
    }
完整代码:
package com.mojo.travel.controller;


import com.mojo.travel.common.R;
import com.mojo.travel.entity.User;
import com.mojo.travel.service.UserService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;

/**
 * ClassName: UserController
 * Author: Admin
 * Date: 2021/9/13 9:40
 * @description: 用户类按照 Restful接口编程
 */
 
@RestController
//允许任何跨域请求
@CrossOrigin("*")
@RequestMapping("/user")
public class UserController {
          
   

    @Resource
    private UserService userService;

    //用户数据查询
    @GetMapping
    private R<?> search(@RequestParam(defaultValue = "1") Integer pageNum,
                        @RequestParam(defaultValue = "10") Integer pageSize,
                        @RequestParam(defaultValue = "") String searchKey){
          
   

        return userService.find(pageNum,pageSize,searchKey);
    }


    // 用户登录
    @PostMapping("/login")
    public R<?> login(@RequestBody User user){
          
   

        System.out.println("username: "+user.getUsername()+" | "+"password: "+user.getPassword());
        return userService.query(user);
    }


    //用户注册
    @PostMapping("/reg")
    public R register(@RequestBody User user){
          
   

       return  userService.insert(user);

    }

    //用户更新
    @PutMapping
    public R<?> modify(@RequestBody User user){
          
   
        return userService.update(user);
    }

    //删除用户
    @DeleteMapping("/{id}")
    public R<?> remove(@PathVariable Long id){
          
   
        return userService.delete(id);
    }


}
经验分享 程序员 微信小程序 职场和发展