标签:请求方式 代码 传输 val param json str 重要 parameter
随着互联网和移动设备得发展,人们对Web应用的使用需求也增加,传统的动态页面由于低效率而渐渐被HTML+JavaScript(Ajax)的前后端分离所取代!所以一套结构清晰、符合标准、易于理解、扩展方便让大部分人都能够理解接受的接口风格就显得越来越重要,而RESTful风格的接口(RESTful API)刚好有以上特点,就逐渐被实践应用而变得流行起来
有位大佬总结了一句话,用URL定位资源,用Http请求描述操作!-我认为就是RESTFul的精华。
HTTP Method | 安全性 | 幂等性 | 备注 |
---|---|---|---|
GET | 安全 | 幂等 | 读操作安全,查询一次多次结果一致 |
POST | 非安全 | 非幂等 | 写操作非安全,每多插入一次都会出现新结果 |
GET | 安全 | 幂等 | 写操作非安全,一次和多次更新结果一致 |
GET | 安全 | 幂等 | 写操作非安全,一次和多次删除结果一致 |
主要用于前后端分离,前端拿到数据只负责展示和渲染,不对数据做任何处理,后端处理数据并以JSON格式传输出去,定义这样一套统一风格的接口,可以叫做RestFul接口。说白了只是一种设计风格!
URL:统一资源定位符
HTTP/1.1:
RESTFul API 示例,基于SpringBoot MyBatis MySQL
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for user_login
-- ----------------------------
DROP TABLE IF EXISTS `user_login`;
CREATE TABLE `user_login` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘id‘,
`username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NULL DEFAULT NULL COMMENT ‘用户名‘,
`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NULL DEFAULT NULL COMMENT ‘密码‘,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_520_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of user_login
-- ----------------------------
INSERT INTO `user_login` VALUES (1, ‘admin‘, ‘123456‘);
INSERT INTO `user_login` VALUES (8, ‘tom‘, ‘root‘);
SET FOREIGN_KEY_CHECKS = 1;
@RestController
public class MyRestController {
@Resource
private UserLoginService userLoginService;
@GetMapping("/users")
public List<UserLogin> queryAll() {
return userLoginService.queryAll();
}
@GetMapping("/users/{id}")
public UserLogin queryById(@PathVariable("id") Integer id) {
return userLoginService.queryById(id);
}
@PostMapping("/users")
public int add(UserLogin userLogin) {
return userLoginService.add(userLogin);
}
@PutMapping("/users/{id}")
public int update(@PathVariable("id") Integer id,
@RequestParam("username") String username,
@RequestParam("password") String password) {
UserLogin user = userLoginService.queryById(id);
user.setUsername(username);
user.setPassword(password);
return userLoginService.update(user);
}
@DeleteMapping("/users/{id}")
public int delete(@PathVariable("id") Integer id) {
return userLoginService.deletebyId(id);
}
}
public interface UserLoginMapper {
public List<UserLogin> queryAll();
public int add(UserLogin userLogin);
public UserLogin queryByName(String username);
UserLogin queryById(Integer userId);
int update(UserLogin userLogin);
int deleteById(Integer userId);
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.centanet.common.mapper.UserLoginMapper">
<select id="queryAll" resultType="com.centanet.common.pojo.UserLogin">
select * from mybatis.user_login
</select>
<insert id="add" parameterType="com.centanet.common.pojo.UserLogin">
insert into mybatis.user_login(username, password)
values (#{username}, #{password})
</insert>
<update id="update" parameterType="com.centanet.common.pojo.UserLogin">
update mybatis.user_login
set username = #{username},
password = #{password}
where id = #{id}
</update>
<select id="queryByName" resultType="com.centanet.common.pojo.UserLogin">
select *
from mybatis.user_login
where username = #{username}
</select>
<select id="queryById" resultType="com.centanet.common.pojo.UserLogin">
select *
from mybatis.user_login
where id = #{id}
</select>
<delete id="deleteById" parameterType="java.lang.Integer">
delete
from mybatis.user_login
where id = #{id}
</delete>
</mapper>
粗谈RESTFul API接口-认识粗谈RESTFul API接口-认识
标签:请求方式 代码 传输 val param json str 重要 parameter
原文地址:https://www.cnblogs.com/baijinqiang/p/14550653.html