- 一、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);
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)