关于demo的学习第二天 学习此demo用于完成大作业,更重要的是学习go语言的语法,以及框架知识,还有一些设计。
首先观察controller中的一些部分
这里表示出各个请求接口的样子,我们一个个来看。 comment就是评论的功能。
定义了两个类,继承自response类, json后面的一串表示出了相关的信息,它转换成json文件之后会是怎样的一种形式。
func CommentAction(c *gin.Context) {
token := c.Query("token")
actionType := c.Query("action_type")
if user, exist := usersLoginInfo[token]; exist {
if actionType == "1" {
text := c.Query("comment_text")
c.JSON(http.StatusOK, CommentActionResponse{Response: Response{StatusCode: 0},
Comment: Comment{
Id: 1,
User: user,
Content: text,
CreateDate: "05-01",
}})
return
}
c.JSON(http.StatusOK, Response{StatusCode: 0})
} else {
c.JSON(http.StatusOK, Response{StatusCode: 1, StatusMsg: "User doesn't exist"})
}
}
这个函数表示出了一些相关函数,参数是一个gin.的Context,是http相关信息的存储引用。 token和actionType是两个HTTP GET请求的参数,这里通过一个map地址来实现用户数据的存储功能,之后会被改成数据库。
go语言的map使用时将会返回两个值,一个为对象引用,一个为是否存在。
这个函数将会返回给客户端JSON结果。
func CommentList(c *gin.Context) {
c.JSON(http.StatusOK, CommentListResponse{
Response: Response{StatusCode: 0},
CommentList: DemoComments,
})
}
这个函数将会返回整个评论的列表,demoComments是一个测试用的结果。
common中间使用了json来表示实体,通过这种写法,JSON库能够直接识别并且转换。
favorite表示喜爱列表,将会返回喜欢的视频,原理与comment类似。
这个controller列表用于前后端的交互,这里的demo只有一部分,返回的数据只有写死的一些数据。之后应该去调用service层,然后调用mysql数据来获取真实的数据。