苍穹外卖day01

前端

使用nginx开启前端,再用localhost去访问前端的页面

git部分

使用git环境去上传代码至gitee

在这里插入图片描述

后端部分

ctrl+shift+B 跳转到相关的代码
总体的代码是由Controller去完成登录的功能,接受一个DTO参数,通过service的login方法可以去数据库获取employee的所有属性,在处理一下密码等信息,返回Result类中的succes内容是employeeLoginVO(这个类是有builder构建器封装的,这样可以将jwt令牌和employee等数据传递回前端)

 return Result.success(employeeLoginVO);

整体目前是通过DTO接受前端传过来的数据交给后端处理(将前端的数据交给登录service去处理登陆的事情 : 去对比数据库是否有这个数据,如果有返回所有employee的内容)

@RestController
@RequestMapping("/admin/employee")          //后端请求地址 localhost:8080/admin/employee/login   但是前端是localhost/login 不一致的  :
@Slf4j                                      //因为由nginx反向代理,将前端的动态请求nginx转发到了后端的服务器tomcat(提高访问速度,均衡负载给不同的服务器(有多太服务器的情况,保证后端服务器的安全)
public class EmployeeController {           //通过一个配置文件nginx.conf去配置转发的到哪个请求路径   负载均衡也是一个配置文件 /api/ {proxy pass + 网址} 配置文件在前端代码中,不在后端

    @Autowired
    private EmployeeService employeeService;
    @Autowired
    private JwtProperties jwtProperties; //通过jwtProperties这个配置文件,去读取yml配置文件里面的内容变成jwtProperties的内容值,就可以使用通过jwtProperties来获取配置文件yml的数据

    /**
     * 登录
     *
     * @param employeeLoginDTO
     * @return
     */
    @PostMapping("/login")
    public Result<EmployeeLoginVO> login(@RequestBody EmployeeLoginDTO employeeLoginDTO) {  //employeeLoginDTO是通过前端传过来的东西
        log.info("员工登录:{}", employeeLoginDTO);      //在log中打印employeeLoginDTO的内容  员工登录:EmployeeLoginDTO(username=admin, password=123456)

        Employee employee = employeeService.login(employeeLoginDTO);        //将前端的数据交给登录service去处理登陆的事情 : 去对比数据库是否有这个数据,如果有返回所有employee的内容

        //登录成功后,生成jwt令牌
        Map<String, Object> claims = new HashMap<>();
        claims.put(JwtClaimsConstant.EMP_ID, employee.getId());         //将从数据库获取到的employ的数据封装进 jwt令牌
        String token = JwtUtil.createJWT(
                jwtProperties.getAdminSecretKey(),
                jwtProperties.getAdminTtl(),    //通过jwtProperties这个配置文件,去读取yml配置文件里面的内容变成jwtProperties的内容值,就可以使用通过jwtProperties来获取配置文件yml的数据
                claims);

        EmployeeLoginVO employeeLoginVO = EmployeeLoginVO.builder()    //builder构建器封装    再将jwt令牌和employee等数据传递回前端
                .id(employee.getId())
                .userName(employee.getUsername())
                .name(employee.getName())
                .token(token)
                .build();

        return Result.success(employeeLoginVO);
    }

    /**
     * 退出
     *
     * @return
     */
    @PostMapping("/logout")
    public Result<String> logout() {
        return Result.success();
    }

}

,具体来说就是DTO的类交给Service类的方法去处理,将从数据库获取到的employ的数据封装进 jwt令牌,通过jwtProperties这个配置文件,去读取yml配置文件里面的内容变成jwtProperties的内容值,就可以使用通过jwtProperties来获取配置文件yml的数据

登录加密

登录的部分使用md5加密进行加密一下,再数据库里也变成md5加密。

password = DigestUtils.md5DigestAsHex(password.getBytes());

接口文档使用

使用https://yapi.pro/
把json文件当如到网站之中

Swagger

使用knife4j,代码重点:
一个是指定要去扫描的controller的位置,一个使用静态页面映射,就是可以看接口需要什么返回什么和调试

bean是注解的意思在这里插入图片描述
意思就是这个会帮忙扫描controller类去自动生成接口
在这里插入图片描述
这样会保存到相应的目标

.apis(RequestHandlerSelectors.basePackage("com.sky.controller"))        //指定我们扫描的包去生成接口

最重要的代码

http://localhost:8080/doc.html#/home

访问这个网址,就可以知道我们的项目接口文档的内容。
在这里插入图片描述
可以使用调试去调试我们的接口

swagger常用注解

有注解才会在调试网站上有解释
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值