首页 > 其他分享 >(13)go-micro微服务公用函数开发

(13)go-micro微服务公用函数开发

时间:2023-01-17 10:12:46浏览次数:54  
标签:13 UserForResponse micro json go userModel SwapTo response

目录

一 前言

  • 在utils目录中新建一个swap.go文件

  • swap.go中主要存放一些可以使用到的一些公共函数

  • 导包:

import (
   "account/domain/model"
   . "account/proto/account"
   "encoding/json"
   "google.golang.org/protobuf/types/known/timestamppb"
)

二 SwapTo 通过json tag 进行结构体赋值

  • 此函数主要用于将客户端传来的数据解析到结构体中
  • 还用于将数据解析传给客户端
// SwapTo 通过json tag 进行结构体赋值
func SwapTo(request, category interface{}) (err error) {
   dataByte, err := json.Marshal(request)
   if err != nil {
      return
   }
   return json.Unmarshal(dataByte, category)
}

三 UserForResponse 类型转化

  • 此函数用于将数据库查出的数据赋值给Response传给客户端
// UserForResponse 类型转化
func UserForResponse(response *UserInfoResponse, userModel *model.User) *UserInfoResponse {
   response.UserId = userModel.ID
   response.Username = userModel.UserName
   response.FirstName = userModel.FirstName
   response.LastName = userModel.LastName
   response.Email = userModel.Email
   response.IsActive = userModel.IsActive
   response.Permission = userModel.Permission
   response.CreateDate = timestamppb.New(userModel.CreateDate)
   response.UpdateDate = timestamppb.New(userModel.UpdateDate)
   return response
}

四 最后

  • 至此,go-micro微服务公用函数开发工作就正式完成。

  • 接下来就开始服务层Handle层的代码编写了,希望大家关注博主和关注专栏,第一时间获取最新内容,每篇博客都干货满满。

欢迎大家加入 夏沫の梦的学习交流群 进行学习交流经验,点击 夏沫の梦学习交流

标签:13,UserForResponse,micro,json,go,userModel,SwapTo,response
From: https://www.cnblogs.com/qi66/p/17057076.html

相关文章

  • 13.Selenium【鼠标和键盘操作】模拟鼠标操作页面元素(了解)
    一、前言actionchains是selenium里面专门处理鼠标和键盘相关的操作如:鼠标移动,鼠标按钮操作,按键和上下文菜单(鼠标右键)交互。这对于做更复杂的动作非常有用,比如悬停和拖放。......
  • CF1364C-Ehab and Prefix MEXs
    a[i]<=i,否则当a[i]>i时,需要1~i项有数字0~a[i]-1,这一共是a[i]个数字,而1~i项只有i个数字,需要的比拥有的数字多,不成立当a[i]!=a[i-1]时,说明Mex改变了,那么需要b[i]为a[i-1]才......
  • golang: os.open函数
    Open函数/*类似c里的fopen函数返回一个file的指针传入参数文件名(路径)*/funcOpen(namestring)(*File,error){/*调用OpenFile函数,传......
  • [LeetCode] 1328. Break a Palindrome 破坏回文串
    GivenapalindromicstringoflowercaseEnglishletterspalindrome,replaceexactlyonecharacterwithanylowercaseEnglishlettersothattheresultingstri......
  • Go语言template相关知识
    templeate三板斧创建模版:模版文件以.tmpl结尾,文件的语法和html相同。解析模版t,err:=template.ParseFile("./filename.tmpl")iferr!=nil{ //错误处理......
  • Abc132 DEF
    前言今天打得有点惨,特开一篇.D数学题目,考虑插板法,对于\(i\)个红球,存在\(i-1\)个缝隙供蓝球,但是注意到左右两边各有分析,最后就存在\(i+2\)个缝隙.对于本......
  • 力扣每日一题2023.1.16---1813. 句子相似性 III
    一个句子是由一些单词与它们之间的单个空格组成,且句子的开头和结尾没有多余空格。比方说,"HelloWorld" ,"HELLO" ,"helloworldhelloworld" 都是句子。每个单词都只 ......
  • golang:osd.read函数
    函数原型func(f*File)Read(b[]byte)(nint,errerror){//传入b一段内存Buff//检测file是否为空,为空则返回 iferr:=f.checkValid("read"......
  • go 相关
    goconfigwindowsexportGOCACHE="D:\software\go_\cache"exportGOENV="D:\software\go_\env"exportGOMODCACHE="D:\software\go_\modcache"exportGOPATH="D:\soft......
  • 关于mongoDB
    一、非正常停止MongoDB服务,下次启动失败,可以删除data文件夹下面的mongo.lock文件参考文档:https://m.py.cn/db/mongodb/16368.html 二、启动mongodb服务报错:Errorstar......