mirror of
https://github.com/IceWhaleTech/CasaOS.git
synced 2025-11-07 07:09:46 +00:00
wip
This commit is contained in:
parent
a55a5fe361
commit
d3041abcb4
@ -43,15 +43,27 @@ func InitRouter() *gin.Engine {
|
||||
// 不正规的方式是 改成 /v1/users/names,假定 name 也是资源
|
||||
r.GET("/v1/user/all/name", v1.GetUserAllUserName)
|
||||
|
||||
r.GET("/v1/sys/init/check", v1.GetSystemInitCheck)
|
||||
r.GET("/v1/guide/check", v1.GetGuideCheck)
|
||||
r.GET("/v1/debug", v1.GetSystemConfigDebug)
|
||||
// @tiger - 1)不要把同一个词汇按单词来分割。2)同领域的 API 应该放在同路径下。
|
||||
r.GET("/v1/sys/init/check", v1.GetSystemInitCheck) // 这里改成 /v1/sys/init_check
|
||||
r.GET("/v1/guide/check", v1.GetGuideCheck) // 这里改成 /v1/sys/guide_check
|
||||
r.GET("/v1/debug", v1.GetSystemConfigDebug) // 这里改成 /v1/sys/debug
|
||||
|
||||
// @tiger - 如果遵循 RESTful avatar 本身并不是资源,而是属性;资源是 user
|
||||
// 所以正规的方法是 改成 /v1/user/:id 然后返回 user 对象,具体 avatar 由前端自行抽取
|
||||
// 不正规的方式是 改成 /v1/user/:id/avatar,假定 avatar 也是资源
|
||||
r.GET("/v1/user/avatar/:id", v1.GetUserAvatar)
|
||||
|
||||
// @tiger - 如果遵循 RESTful image 本身并不是资源,而是属性;资源是 user
|
||||
// 所以正规的方法是 改成 /v1/user/:id 然后返回 user 对象,具体 image 由前端自行抽取
|
||||
// 不正规的方式是 改成 /v1/user/:id/image,假定 image 也是资源
|
||||
r.GET("/v1/user/image", v1.GetUserImage)
|
||||
|
||||
// @tiger - 不要把同一个词汇按单词来分割,改成 /v1/sys/socket_port
|
||||
r.GET("/v1/sys/socket/port", v1.GetSystemSocketPort)
|
||||
|
||||
// @tiger - (nice-to-have)开源项目应该删除所有注释代码,增加代码整洁性。或者增加注释说明
|
||||
//r.POST("/v1/user/refresh/token", v1.PostUserRefreshToken)
|
||||
|
||||
v1Group := r.Group("/v1")
|
||||
|
||||
v1Group.Use(jwt2.JWT())
|
||||
@ -59,6 +71,7 @@ func InitRouter() *gin.Engine {
|
||||
v1UserGroup := v1Group.Group("/user")
|
||||
v1UserGroup.Use()
|
||||
{
|
||||
// @tiger - info 一词名没有指定性,容易产生困扰。改成 /current
|
||||
v1UserGroup.GET("/info", v1.GetUserInfo)
|
||||
v1UserGroup.PUT("/username", v1.PutUserName)
|
||||
v1UserGroup.PUT("/password", v1.PutUserPwd)
|
||||
|
||||
@ -470,7 +470,7 @@ func GetSystemSocketPort(c *gin.Context) {
|
||||
model.Result{
|
||||
Success: common_err.SUCCESS,
|
||||
Message: common_err.GetMsg(common_err.SUCCESS),
|
||||
Data: config.ServerInfo.SocketPort,
|
||||
Data: config.ServerInfo.SocketPort, // @tiger 这里最好封装成 {'port': ...} 的形式,来增加出参的上下文
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@ -188,6 +188,8 @@ func GetUserAvatar(c *gin.Context) {
|
||||
if user.Id > 0 {
|
||||
path = user.Avatar
|
||||
}
|
||||
|
||||
// @tiger - RESTful 规范下不应该返回文件本身内容,而是返回文件的静态URL,由前端去解析
|
||||
c.File(path)
|
||||
}
|
||||
|
||||
@ -324,13 +326,14 @@ func GetUserInfo(c *gin.Context) {
|
||||
user := service.MyService.User().GetUserInfoById(id)
|
||||
|
||||
//*****
|
||||
// @tiger - 应该和 PostUserLogin 中的 user 对象一致。而不是重构一系列字段。
|
||||
var u = make(map[string]string, 5)
|
||||
u["user_name"] = user.UserName
|
||||
u["head"] = user.Avatar
|
||||
u["user_name"] = user.UserName // 改成 username
|
||||
u["head"] = user.Avatar // 应该和 /v1/user/avatar/:id 一致,改成 avatar
|
||||
u["email"] = user.Email
|
||||
u["description"] = user.NickName
|
||||
u["nick_name"] = user.NickName
|
||||
u["id"] = strconv.Itoa(user.Id)
|
||||
u["nick_name"] = user.NickName // 改成 nickname
|
||||
u["id"] = strconv.Itoa(user.Id) // (nice-to-have) 最佳实践是用随机字符来代表 ID。顺序数字有可预测性
|
||||
|
||||
//**
|
||||
|
||||
@ -596,6 +599,8 @@ func GetUserImage(c *gin.Context) {
|
||||
defer fileTmp.Close()
|
||||
|
||||
fileName := path.Base(filePath)
|
||||
|
||||
// @tiger - RESTful 规范下不应该返回文件本身内容,而是返回文件的静态URL,由前端去解析
|
||||
c.Header("Content-Disposition", "attachment; filename*=utf-8''"+url2.PathEscape(fileName))
|
||||
c.File(filePath)
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user