自定义json Marshalling
在开发中,若是遇到结构体中的私有变量(小写变量),需要出现在json Marshal
结果中,使用json外包显然是无法做到的,因为外包是无法看到私有变量的,reflect
机制需要的是大写变量,但就是需要这样的操作,怎么办呢,可以实现该结构体自有Marshal
方法。
在开发中,若是遇到结构体中的私有变量(小写变量),需要出现在json Marshal
结果中,使用json外包显然是无法做到的,因为外包是无法看到私有变量的,reflect
机制需要的是大写变量,但就是需要这样的操作,怎么办呢,可以实现该结构体自有Marshal
方法。
什么事都需要一个开头,也许是兴趣使然,也许是纯属特闲,一切都是这么自然而然,很多时候我们都会迷茫,不清楚未来的方向,谁能搞得清楚自己真的会往哪边走呢,我们需要的也仅是一处避风之所,随心而动,望万事和谐。
在使用网关的过程中,可能需要对已有功能进行一些扩展,这个时候就需要对网关进行一些改造工作,在gateway中,除了一些核心模块外,相关的功能模块都采用插件的形式进行实现,例如:黑白名单,熔断器,JWT,限流等,所以,在功能上的扩展上是可以按照插件的形式进行添加的,这也是gateway作者推荐的操作。
在之前的项目中,有做过文件上传下载操作,当时对这些操作都不是非常熟悉,所以在实现功能上,停留在能正常工作的前提下,在找到更好的方法后,回头来尝试优化之前的解决方法。
上传操作中,服务器常使用ParseMultipartForm
,解析form表单传递的文件数据。
MongoDB在Go中是有官方的API接口库的,不过在官方开发库之前,一直是存在个人开发版(mgo),后来交由社区进行维护了,貌似此人也是与MongoDB官方进行合作进行官方库的开发。