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

SpringBoot后端接口编写——Restful风格,第1张

SpringBoot后端接口编写——Restful风格
  • 一、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);
    }


}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/795379.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存