从golang-gin-realworld-example-app项目学写httpapi (三)

it2022-05-05  139

从golang-gin-realworld-example-app项目学写httpapi (三)

https://github.com/gothinkster/golang-gin-realworld-example-app/blob/master/users/serializers.go

序列化定义

package users import ( "gopkg.in/gin-gonic/gin.v1" "github.com/wangzitian0/golang-gin-starter-kit/common" ) // 用户简介序列化结构体 type ProfileSerializer struct { C *gin.Context UserModel } // 用户简介响应json结构体 type ProfileResponse struct { ID uint `json:"-"` Username string `json:"username"` Bio string `json:"bio"` Image *string `json:"image"` Following bool `json:"following"` } // 用户简介的内置方法Response func (self *ProfileSerializer) Response() ProfileResponse { //中间件请求c.MustGet myUserModel := self.C.MustGet("my_user_model").(UserModel) profile := ProfileResponse{ ID: self.ID, Username: self.Username, Bio: self.Bio, Image: self.Image, Following: myUserModel.isFollowing(self.UserModel), } return profile } // 用户信息结构体 type UserSerializer struct { c *gin.Context } // 用户信息响应json结构体 type UserResponse struct { Username string `json:"username"` Email string `json:"email"` Bio string `json:"bio"` Image *string `json:"image"` Token string `json:"token"` } // 用户信息的内置方法Response func (self *UserSerializer) Response() UserResponse { //中间件请求c.MustGet myUserModel := self.c.MustGet("my_user_model").(UserModel) user := UserResponse{ Username: myUserModel.Username, Email: myUserModel.Email, Bio: myUserModel.Bio, Image: myUserModel.Image, Token: common.GenToken(myUserModel.ID), } return user } posted on 2018-11-18 10:00 北京涛子 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/liujitao79/p/9977089.html

相关资源:各显卡算力对照表!

最新回复(0)