Write the Code. Change the World.

9月 07

随着业务逻辑的充实,发现前边有些地方还是需要修改和完善。哪里呢。就是最最开始的地方,就是定义 api 的那地方。其实在那里,最开始,只需要定义 Req 和 Res。里边不需要先填充任意的东西。为什么这么说呢。因为 路由指向 ctrl,ctrl 通过 service 的绑定去调用 logic。而 logic 里的输入输出却是在 mode 里定义的。所以,model 里边的输入输出和 api 里的输入输出一般都是一样的。这个时候,只需要定义 model 里的输出输出。 api 那边直接继承过来就可以了。所以,步骤是这样的。

  • 定义 api 里的 req 和 res,空的就行(接口path 和 method 还是要加上),名字和方法名字想好。执行 gf gen ctrl 生就好。
  • 然后再生成 dao 和 model。 执行 gf gen dao 生就好。
  • 再在 model 下定义输入和输出。这个定义输入和输出也有一点矛盾。是业务场景带来的。model 和 dao 自身一般是不会有矛盾的,因为他们对应的数据库里的表。而输出和输入却要对应业务场景。比如一个项目有后台登录和 app 登录两个场景。往往,会分出两个路由组来处理这两种业务场景。虽然都是登录,输入和输出一般都不会都是相同的。这个时候 model 下定义输入和输出就得加个分组了。比如当前逻辑是后台逻辑。我会在 internal/model/ 下再多建立一层文件夹,就叫 admin。然后在里边再建立对应的输入输出文件。其实叫的这个 admin 和 api 下的文件夹是一个意思。就是初始化项目时候 api 下的 v1 的意思。这个时候都是 v1 或都是 admin,继承的时候就要用别名哈。下边会给出例子。
  • 再去建立 logic 的初步实现。然后去生 service,再回头完善 logic。 gf gen service

在 api req 的时候,里边一定要有 g.Meta。否则,不会生成对应的 ctrl 文件。

go 语言刚开始学,goframe 也是第一次用。如果理解错了,可以留言哈。

继续阅读

9月 07

从 http 请求到自定义路由,再对应的返回已经跑通了。但是,还没具体的实现业务。那就先从图片验证码开始。从以下几点开始。

  • 先去找一个比较成熟的生成图片验证码的库
  • 写生成逻辑,并加入缓存功能。比如缓存 5 分钟。
  • 添加配置。图片的默认宽高,复杂度等。以及上边说的缓存 5 分钟这些,最好有一个统一配置。
  • 再就是核验验证码(该步骤留到需要使用验证码的地方使用)

redis 配置

在做这些之前,我们先把 redis 配置和使用搞好。就是准备使用 redis 来对图片验证码的值进行缓存。

goframe 官方配置介绍: https://goframe.org/pages/viewpage.action?pageId=1114194

redis 官方介绍: https://goframe.org/display/gf/NoSQL+Redis

配置文件的文件类型就使用 yaml,配置文件就放在 *manifest/config下。

好吧。那么就在 *manifest/config/config.yaml 下补充。

# Redis 配置
redis:
  default:
    address: 192.168.56.56:6379
    db:      1

  cache:
    address:     192.168.56.56:6379
    db:          2

配置好了,那就开始使用测试下看看。

继续阅读