中秋佳节,闲来无事,写了一个文章点赞服务,在此记录一下
在阅读文章时,觉得好的文章都会点赞,表示对作者的鼓励支持,也可能最后取消点赞,有时会反复操作。
用户可能在个人中心查看自己的点赞列表,或他人对自己文章的点赞情况。所以在设计时可以添加一些重复的信息例如:头像、文章标题。
type Like struct {ID string `json:"id" valid:"required,uuid" jsonapi:"primary,likes"`// 用户IDUserID string `json:"userID" valid:"required,uuid" jsonapi:"attr,userID"`// 文章idSourceID string `json:"sourceID" valid:"required,uuid" jsonapi:"attr,sourceID"`// 其他数据,比如:头像、文章标题等(以字符串方式传入)Data string `json:"data" jsonapi:"attr,data"`Deleted bool `json:"deleted" jsonapi:"attr,deleted"`CreatedTime int64 `json:"createdTime" jsonapi:"attr,createdTime"`
}
Data字段传入其他额外信息,客户端自己解析出来即可,这样该服务就可以在其他地方使用时,不需要在添加新的字段。
点赞总数结构
type LikeCount struct {ID string `json:"id" valid:"required,uuid" jsonapi:"primary,likesCount"`Count int `json:"count" jsonapi:"attr,count"`// 可以是文章ID、也可以是用户IDSourceID string `json:"sourceID" valid:"required,uuid" jsonapi:"attr,sourceID"`Deleted bool `json:"deleted" jsonapi:"attr,deleted"`CreatedTime int64 `json:"createdTime" jsonapi:"attr,createdTime"`
}
关于SourceID的说明,可以是文章ID、也可以是用户ID,这样可以直接获取文章的点赞总数,也可以获取用户获得的点赞总数。
提供以下接口:
点赞是一个高频操作,可以使用redis来进行缓存,来降低对数据库的影响,提高xiaolv。该服务只是在自己的系统上使用,所以没有添加redis模块。
以上开发使用的是golang + pgsql。欢迎交流学习
在我的个人网站中有使用,点击“顶一下”按钮,演示地址
本文发布于:2024-01-29 08:03:41,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170648662513858.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |