这是我参与「第五届青训营 」伴学笔记创作活动的第7天。
前言
今天来说说大项目作业的开发:对接好抖音demo的前端接口。
由于自己是第一次接触后端,在最开始的时候对如何去对接接口完全没有思路,只有一个朦胧的印象:对接接口是需要用在青训营项目学习过的三个框架。
于是我决定先搞定三个框架,GORM和Hertz框架都还算简单,但是对于kitex我卡了很长的时间。
后来在我朋友的指点下,我才算堪堪掌握了这三个框架。后来一想,kitex框架的困难,很大程度上来自于我以前从来没有接触过linux(Kitex框架不甚支持Windows),从linux子系统的安装、linux上Go环境的安装、环境变量的设置、vim的使用、kitex框架的安装、Thriftgo版本的切换,以及中途各种数不清的莫名其妙的bug、报错,对我来说真的很困难。
对接思路
虽然折腾kitex了好几天,但是我自己写这个项目其实并不需要RPC服务。
首先是由前端发起的HTTP请求,例如用户注册接口:
我们能得到的信息是:
- 路由
- 请求方法
其次,下面也有我们的信息:
type ApifoxModel struct {
StatusCode int64 `json:"status_code"`// 状态码,0-成功,其他值-失败
StatusMsg string `json:"status_msg"` // 返回状态描述
Token string `json:"token"` // 用户鉴权token
UserID int64 `json:"user_id"` // 用户id
}
这是我们需要返回给客户端的结构体。
综上,我们需要用Hertz框架注册好路由,值得注意的是,由于有其他的接口,所以我们实际上需要的是一个路由组:
douyin := h.Group("/douyin")
userGroup := douyin.Group("/user")
userGroup.POST("/register/")
然后,根据Hertz的官方文档,POST方法还需要其他的参数
h.POST("/post", func(ctx context.Context, c *app.RequestContext) {
c.String(consts.StatusOK, "post")
这也是我们需要具体实现的方法,明天再讲。