」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何將 GORM 欄位註解整合到 Protobuf 定義中?

如何將 GORM 欄位註解整合到 Protobuf 定義中?

發佈於2024-11-08
瀏覽:752

How to Integrate GORM Field Annotations into Protobuf Definitions?

將欄位註解整合到Protobuf 定義中

尋求在其protobuf 定義中使用GORM 提供的欄位註解的開發人員可能會因註解缺少欄位註解而遇到挑戰Protobuf 3 語法中的本機日期時間類型。

為了解決這個問題,可以使用後處理腳本來使用所需的 GORM 註解來增強產生的原型文件。例如,給定以下 protobuf 設定檔定義:
message Profile {
  uint64 id = 1;
  string name = 2;
  bool active = 3;
}
message Profile { uint64 id = 1; 字串名稱=2; 布爾活躍 = 3; }

以下腳本(“gorm.sh”)可用於後處理:
#!/bin/bash

g () {
  sed "s/json:\"$1,omitempty\"/json:\"$1,omitempty\" gorm:\"$2\"/"
}

cat $1 \
| g "id" "primary_key" \
| g "name" "varchar(100)" \
> $1.tmp && mv $1{.tmp,}
#!/bin/bash 克(){ sed "s/json:\"$1,omitempty\"/json:\"$1,omitempty\" gorm:\"$2\"/" } 貓1美元\ | g“id”“primary_key”\ | g「名稱」「varchar(100)」\ > $1.tmp && mv $1{.tmp,}

透過在產生的protobuf 檔案(例如./gorm.sh profile/profile.pb.go)上呼叫腳本,結果輸出將是:
message Profile {
  uint64 id = 1;
  string name = 2;
  bool active = 3;
}
//... 類型設定檔結構 { 狀態 protoimpl.MessageState sizeCache protoimpl.SizeCache 未知字段 protoimpl.UnknownFields Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty" gorm:"type:primary_key"` 名稱字串 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty" gorm:"type:varchar(100)"` Active bool `protobuf:"varint,3,opt,name=active,proto3" json:"active,omitempty"` } //...

這種方法可以將 GORM 欄位註解整合到 protobuf 定義中,而不需要自訂實作或第三方函式庫。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3