项目介绍

上一篇介绍了前端相关实现代码和效果,本篇则介绍后端接口API如何实现。 :)
上一篇地址:
https://blog.csdn.net/IndexMan/article/details/112480590

项目截图

用到的技术栈

SpringBoot
Mybatis-Plus
Mysql

实现的API如下

1.登录接口

2.列表接口

3.保存接口

4.删除接口

5.单条查询接口

主要代码

这里主要列一下主要代码片段,完整请看项目源码。

LoginController

@RestController
@RequestMapping("/api")
public class LoginController { @Autowired
private UserService userService; @PostMapping("/login")
public Result<String> login(@RequestBody User user, HttpSession session){
QueryWrapper wrapper = new QueryWrapper();
wrapper.eq("username",user.getUsername());
wrapper.eq("password",user.getPassword());
User entity = userService.getOne(wrapper); if (entity == null){
return ResultUtil.fail("用户名密码错误!");
}
else {
session.setAttribute("user",entity);
return ResultUtil.ok("eyJ1aWQiOjUwMCwicmlkIjowLCJpYXQiOjE2MTAzNDg3MjYsImV4cCI6MTYxMDQzNTEyNn0");
}
} @GetMapping("logout")
public Result<String> logout(HttpServletRequest request){
request.getSession().removeAttribute("user");
return ResultUtil.ok("注销成功");
}
}

UserController

@RestController
@RequestMapping("/api/user")
public class UserController {
@Autowired
private UserService userService; @GetMapping("/list")
public Result<IPage<User>> list(@RequestParam(required = false) String query,
@RequestParam(defaultValue = "1") Integer pageNo,
@RequestParam(defaultValue = "10") Integer pageSize) {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
if(!StringUtils.isEmpty(query)){
queryWrapper.like("username",query);
} Page<User> page = new Page<>(pageNo,pageSize); IPage<User> pageResult = userService.page(page, queryWrapper); // 设置总记录数
pageResult.setTotal(userService.count(queryWrapper)); return ResultUtil.ok(pageResult);
} @PostMapping("/removes")
public Result<String> remove(@RequestBody List<Integer> ids){
userService.removeByIds(ids);
return ResultUtil.ok();
} @PostMapping("/remove/{id}")
public Result<String> remove(@PathVariable Integer id){
userService.removeById(id);
return ResultUtil.ok();
} @PostMapping("/modify")
public Result<String> save(@RequestBody User entity){
userService.saveOrUpdate(entity);
return ResultUtil.ok();
} @GetMapping("/{id}")
public Result<User> get(@PathVariable Integer id){
return ResultUtil.ok(userService.getById(id));
} }

配置跨域

@Configuration
public class CrossConfig implements WebMvcConfigurer{ @Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOriginPatterns("*")
.allowCredentials(true)
.allowedMethods("GET", "POST", "DELETE", "PUT","PATCH")
.maxAge(3600)
.allowedHeaders("*");
}
}

获取源码

喜欢的朋友给我点个赞,谢谢!

源码地址:
https://gitee.com/indexman/vue_element_user_demo

Vue+ElementUI实现用户管理前后分离实战二:API接口篇的更多相关文章

  1. vue入门:用户管理demo

    该demo纯前端实现 使用到vue技术点: 1.在该demo中使用到的vue指令:{{}}. v-if. v-model. @click v-for 2.在该demo中使用到的事件修饰符: .prev ...

  2. vue入门:用户管理demo1

    该demo由前端请求后台服务器获取数据进行渲染 使用到的技术点 1.使用到的vue指令:{{}} v-if v-for v-model 2.使用到的事件:@click 点击事件, @keyup.ent ...

  3. vue后台管理系统——用户管理模块

    电商后台管理系统的功能--用户管理模块 1. 用户管理概述 通过后台管理用户的账号信息,具体包括用户信息的展示.添加.修改.删除.角色分配.账号启用/注销等功能. 用户信息列表展示 添加用户 修改用户 ...

  4. vue+element-ui JYAdmin后台管理系统模板-集成方案【项目搭建篇2】

    项目搭建时间:2020-06-29 本章节:讲述基于vue/cli, 项目的基础搭建. 本主题讲述了: 1.跨域配置 2.axios请求封装 3.eslint配置 4.环境dev,test,pro(开 ...

  5. Oracle—用户管理的备份(二)

    在用户管理的备份(一)中(详见:Oracle—用户管理的备份)对用户管理备份几种情况进行了说明:接下来说明几种特别情况和DBverify的使用. 一.如果在表空间在备份模式下,主机发生了异常关闭,会出 ...

  6. dotnetcore vue+elementUI 前后端分离架二(后端篇)

    前言 最近几年前后端分离架构大行其道,而且各种框架也是层出不穷.本文通过dotnetcore +vue 来介绍 前后端分离架构实战. 涉及的技术栈 服务端技术 mysql 本项目使用mysql 作为持 ...

  7. vue+elementui搭建后台管理界面(7 vuex和mockjs的使用)

    将权限管理应用到系统,首先做好登录, 点击登录按钮后,触发以下动作 vuex 中的 login 动作,设置 cookie vuex 中的 getuserinfo , 获取权限.用户名.头像等 由于目前 ...

  8. Vue+ElementUI+Springboot实现前后端分离的一个demo

    目录 1.前期准备 2.创建一个vue项目 3.vue前端 4.java后端 5.启动 5.1.启动vue项目 5.2.启动后端 6.效果 7.总结 8.参考资料 vue官方文档:介绍 - Vue.j ...

  9. vue+elementui搭建后台管理界面(8 同步/异步获取数据渲染table)

    elementui已经封装好了 el-table 组件,只需要指定 data 数据源即可,因此通常在 vue 实例生命周期的 created 阶段,从数据库获取数据,再将返回的数据绑定到 data 如 ...

  10. vue+elementui搭建后台管理界面(6登录和菜单权限控制)

    不同的权限对应不同的路由(菜单),同时侧边栏也根据权限异步生成,实现登录和鉴权思路如下: 登录:点击登录,服务器验证通过后返回一个 token ,然后存到 cookie,再根据 token 拉取用户权 ...

随机推荐

  1. [转帖]日常Bug排查-读从库没有原子性?

    https://zhuanlan.zhihu.com/p/658508920 3 人赞同了该文章 日常Bug排查系列都是一些简单Bug排查.问题虽小,但经常遇到,了解这些问题,会让我们少走点弯路,提升 ...

  2. [转帖]clickhouse使用clickhouse-keeper代替zookeeper

    目录 异常现象: 1. clickhouse的异常日志 2. 追踪对应节点的zookeeper日志 使用clickhouse-keeper代替 zookeeper的步骤: 1: 准备 clickhou ...

  3. [转帖]【dperf系列-5】使用dperf进行性能测试(初级)

    https://zhuanlan.zhihu.com/p/451341132 dperf是一款高性能的开源网络压力测试仪,是Linux基金会旗下的DPDK官方生态项目.本文介绍如利用dperf在两台物 ...

  4. 信创CPU与牙膏厂和按摩店CPU的简单对比

    信创CPU与牙膏厂和按摩店CPU的简单对比 摘要 周天时学习验证了SPEC2006的工具. 晚上时写完了第一稿简单的使用 因为 SPEC 完整跑完非常漫长. 我想了一下短平快还是通过使用一个简单的 r ...

  5. Linux KVM网络处理过程

    Linux KVM网络处理过程 总体解决方法 本次遇到的问题是KVM的网桥处理不小心导致系统无法连接.处理简要总结: 进入机房,给IPMI插上网线, 开机点 Del 进入bios 设置IMPI的地址 ...

  6. requests模块安装

    使用python写接口,必不可少的就是requests,所以事先要在python中安装requests     ​一.使用pip install安装(项目的命令行终端使用) 1.配置下载源地址路径(清 ...

  7. CDP技术系列(一):使用bitmap存储数十亿用户ID的标签或群体

    一.背景介绍 CDP系统中目前存在大量由用户ID集合组成的标签和群体,截止当前已有几千+标签,群体2W+. 大量的标签都是亿级别数据量以上,例如性别.职业.学历等均,甚至有群体中的ID数量达到了数十亿 ...

  8. 【JS 逆向百例】网洛者反爬练习平台第六题:JS 加密,环境模拟检测

    关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后 ...

  9. 开源IM项目OpenIM每周迭代版本发布-群管理 阅后即焚等-v2.0.6

    新特性介绍 OpenIM每周五发布新版,包括新特性发布,bug修复,同时合并PR,解决issue等 一个完善的IM系统,非常复杂,功能繁多,需求不一,比如对象存储有云端oss,cos,s3,私有化存储 ...

  10. 从零开始配置vim(24)——自动补全

    neovim 自带的代码补全的效果并不好,而且它分为好多类,如果需要人为的去判断使用路径补全.使用当前buffer中的单词补全.亦或者使用include 来进行补全,那样使用起来就很不方便了.针对代码 ...