通過.proto自動生成json介面資料時,會預設新增omitempty,此時若字段為空(例如空串,0,nil),則返回的json資料會忽略該欄位,如下圖自動生成的資料。
通過查閱其原始碼(路徑protoc-gen-micro/generator/generator.go),可以發現其生成時會自動新增 omitempty欄位,如下:
// generate the type, methods and default constant definitions for this descriptor.
func
(g *generator)
generatemessage
(message *descriptor)
ofields :=
make
(map
[int32
]*oneoffield)
...tag := fmt.
sprintf
("protobuf:%s json:%q"
, g.
gotag
(message, field, wiretype)
, jsonname+
",omitempty"
)oneof := field.oneofindex !=
nil...
}
則可根據自己的需求進行修改,再此就不過多講述。而如果想讓結果為空與否都返回,可以去掉其json欄位中的omitempty欄位,即可。 Go Micro 微服務總結
go micro 微服務總結 對外提供restful.api 服務的是通過 api 框架或原生寫法 直接呼叫的是 srv 內部呼叫是客戶端去訪問服務端 直接 rpc 呼叫的時候會繞過 restful.api 但是 micro api 閘道器是必須啟動的,閘道器也可配置 直接呼叫srv http請求 ...
使用go micro開發微服務詳解
微服務架構是用來替換傳統的單體架構的。它使用細顆粒度的服務及其組合來完成乙個業務系統的工作。服務間是以一種約定來進行通訊。微服務架構會帶來如下的好處 當談論微服務時,服務的編排和發現是非常重要的。例如kubernetes就用於編排docker容器。通常來說乙個微服務對應乙個容器是乙個比較好的實踐。服...
go微服務系列 一 go micro入門
2.go micro入門 3.結合consul進行服務註冊 發現 它是乙個可插入的rpc框架,用於在go中編寫微服務。開箱即用,您將收到 go 微體系結構可以描述為三層堆疊 頂層由客戶端 伺服器模型和服務抽象組成。底層由以下型別的外掛程式組成 sidecar提供服務註冊,grpc編碼 解碼和http...