赞
踩
上一篇简单实现了数据库表的生成以及生成POJO,这里主要介绍后台服务中实现的接口以及如何通过使用webflux实现一些复杂的逻辑,以及登录鉴权等内容。
如下为整理的实现的借口汇总,应为是RESTful接口,一个path会对应多个功能:
Url | HttpMethod | 描述 |
---|---|---|
/api/auth/logout | get | 登出 |
/api/auth/login | post | 登入 |
/api/user | get | 通过用户名获取数据用户 |
/api/user | post | 存储用户 |
/api/user | put | 更新用户数据 |
/api/user | delete | 通过id删除用户 |
/api/user/all | get | 获取全部用户数据 |
/api/role | get | 通过权限名称获取 |
/api/role | post | 存储权限 |
/api/role | put | 更新权限 |
/api/role | delete | 通过id删除权限 |
/api/role/all | get | 获取所有权限数据 |
/api/url | get | 通过url获取接口信息 |
/api/url | post | 存储接口信息 |
/api/url | put | 更新接口信息 |
/api/url | delete | 通过id删除接口信息 |
/api/url/all | get | 获取所有接口信息 |
简单通过user局里,api和user的逻辑基本相同,role更简单一些
具体过程上一篇已经讲过了,通过使用idea可以很简单的生成,不过reactive的models和jpa的有些差别,有些点需要注意:
EntityListeners
自动生成更新人更新日期等,需要自己写LocalDateTime
,这也是不同之处@JsonIgnore
roles
字段用于存放权限信息@Table("sys_user") @Data @AllArgsConstructor @NoArgsConstructor @With public class SysUser implements DataChange { @Id private long id; private String username; private String avatar; //@JsonIgnore // 请求返回json不希望显示的字段 private String password; private String email; private String mobile; private long frozen; private String createBy; private java.time.LocalDateTime createTime; private String lastUpdateBy; private java.time.LocalDateTime lastUpdateTime; @Transient // 不存在与数据库中的字段 private List<String> roles; }
ReactiveCrudRepository
使用ReactiveCrudRepository
中都有/**
* @author: ffzs
* @Date: 2020/8/26 下午12:51
*/
public interface SysUserRepository extends ReactiveCrudRepository<SysUser, Long> {
Mono<SysUser> findByUsername(String username);
}
/** * @author: ffzs * @Date: 2020/8/26 下午11:21 */ public interface DataChange { void setCreateBy(String createBy); void setCreateTime(LocalDateTime createTime); void setLastUpdateBy(String lastUpdateBy); void setLastUpdateTime(LocalDateTime lastUpdateTime); }
/**
* @author: ffzs
* @Date: 2020/8/27 下午1:51
*/
@Service
public class MarkDataService {
public <T extends DataChange> Mono<T> createObj (T obj) {
return ReactiveSecurityContextHolder.getContext()
.map
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。