day 8

76 阅读1分钟

关于demo的学习第二天 学习此demo用于完成大作业,更重要的是学习go语言的语法,以及框架知识,还有一些设计。

首先观察controller中的一些部分

image.png

这里表示出各个请求接口的样子,我们一个个来看。 comment就是评论的功能。

image.png

定义了两个类,继承自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是一个测试用的结果。

image.png

common中间使用了json来表示实体,通过这种写法,JSON库能够直接识别并且转换。

favorite表示喜爱列表,将会返回喜欢的视频,原理与comment类似。

这个controller列表用于前后端的交互,这里的demo只有一部分,返回的数据只有写死的一些数据。之后应该去调用service层,然后调用mysql数据来获取真实的数据。