【苍穹外卖 | 项目日记】第五天

前言:

            今天感觉学的功能太超前了,感觉已经不是我能参悟的透的了。9a472e0eeef64679b3b73ba2bafd6ee9.png

目录

前言:

今日完结任务:

今日收获:

实现了微信登录接口

服务器端:

杂项知识点:

总结:


今日完结任务:

  • 学习了什么是HTTPClient
  • 学习了微信小程序开发的流程
  • 开始了苍穹外卖用户端的搭建
  • 实现了微信登录接口

今日收获:

实现了微信登录接口

微信登录功能的实现的主要思想是:整体分为三部分:小程序开发者服务器微信接口服务。而整体的运行流程为:小程序内部调用wx.login()获取到一个code(授权码),然后wx.request()把code发送给开发者服务器。而开发者服务器再通过调用微信接口服务来查询当前微信用户是否存在以及确定用户唯一标识(openId),开发者服务器获得OpenID确定具体用户之后,可以自定义用户态(老用户重新登录或者是新注册用户)并且发送Token。

服务器端:

调用微信接口服务,获取用户唯一ID:

【苍穹外卖 | 项目日记】第五天_第1张图片

UserService层:

【苍穹外卖 | 项目日记】第五天_第2张图片

除此之外,我们也需要拦截器把未登录状态时候的一切请求进行拦截(查询餐厅状态和登录请求除外)

【苍穹外卖 | 项目日记】第五天_第3张图片

 拦截器的思想就是校验下发的token令牌,如果令牌无法被解析或者没有令牌,说明当前用户处于未登陆状态,就不可以访问未开放的网络请求

最后我们还需要在配置类中注册拦截器

【苍穹外卖 | 项目日记】第五天_第4张图片

微信登录的整体实现思路其实不是很难,和我们之前在商家端写的员工登录的唯一区别就是我们把对用户的登录从本地数据库查询变为了调用微信服务接口,其余的思想其实还是一致的。

杂项知识点:

1.什么是异步编程

异步编程是一种编程模式,旨在提高程序的性能和响应能力。传统的同步编程方式是指程序按照顺序一步一步地执行,如果某个操作需要等待,那么程序会阻塞在那里,直到操作完成才继续执行下一步。这种同步编程方式在面对一些耗时的操作时可能会导致程序的响应变慢。

与之相反,异步编程是指在遇到耗时操作时,不需要等待操作结果,而是继续执行后续的代码。当操作完成后,通过一定的方式(例如回调、Promise、异步函数等)通知调用方处理操作结果。这样可以使得程序不需要在等待操作完成时阻塞,而是可以继续执行其他任务,以提高程序的并发性和响应能力。

异步编程常见的应用场景包括:

  1. 网络请求:例如发送 HTTP 请求或访问数据库等操作,这些操作可能需要花费较长时间来获取响应结果。

  2. 文件操作:例如读取或写入大文件时,可以通过异步方式不阻塞主线程来提高程序的并发性。

  3. 定时任务:例如定时触发某些操作,可以使用异步方式在特定时间点执行任务。

异步编程可以通过多种方式实现,例如回调函数、Promise、async/await等。这些方式可以使得代码更加简洁、易读,并提供了更好的错误处理机制。通过合理地运用异步编程,可以提高程序的性能、吞吐量和用户体验。

2.什么是HTTPClient

简单的讲:HTTPClient就是一个依赖,使我们可以在后端发送网络请求。例如我们在后端如果想要调用微信服务接口:

【苍穹外卖 | 项目日记】第五天_第5张图片

微信的开发者文档里面给出的调用方式是HTTPS调用,也就是说我们的后端要发送一个GET请求,在这里就需要用到HTTPClient依赖

HTTPClient是一个在客户端进行HTTP通信的库,用于发送HTTP请求和接收HTTP响应。它是一个功能强大且易于使用的工具,通常用于从客户端与服务器进行数据交互。

HTTPClient提供了一套丰富的API,可以用于创建和配置HTTP请求,包括指定URL、请求方法、请求头、请求体等。它支持多种HTTP协议,如HTTP/1.1和HTTP/2,并提供了各种功能,如连接池管理、身份验证、请求重试、缓存等。

使用HTTPClient,可以轻松地发送GET、POST、PUT、DELETE等各种类型的HTTP请求,并可以设置超时时间、处理重定向、处理响应结果等。它还支持异步操作,可以同时发起多个请求,更高效地处理并发请求。

HTTPClient的好处包括:

  1. 简化的API:HTTPClient提供了简洁易用的API,减少了手动处理HTTP请求和响应的复杂性。

  2. 高度可配置:可以根据需求进行配置,设置请求超时、连接池大小、代理等参数。

  3. 扩展性强:HTTPClient提供了丰富的扩展点,可以轻松实现自定义的HTTP处理逻辑。

  4. 兼容性好:支持多个版本的HTTP协议,且与各种Web服务器和框架兼容性良好。

HTTPClient在各种编程语言和平台上都有对应的实现,如Java中的Apache HttpClient、Node.js中的axios等。无论在Web开发还是后端服务器通信中,HTTPClient都是一种重要的工具。

总结:

今天学习的内容感觉很偏实践,实际操作起来倒是不难,就是在学习的时候引入的概念太多了,有的时候听的会有一点蒙,又是微信开发者工具又是微信小程序的。但是收获也确实很大

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!

69e9169c980f43e0aad31ff9ada88a9c.png

你可能感兴趣的:(【苍穹外卖】,数据库,spring,java,后端,spring,boot)