フィールド アノテーションを Protobuf 定義に統合する
GORM によって提供されるフィールド アノテーションを protobuf 定義内で利用しようとする開発者は、protobuf 定義が存在しないため、課題に遭遇する可能性があります。
これに対処するには、後処理スクリプトを使用して、生成された proto ファイルに必要な GORM アノテーションを追加できます。たとえば、次の protobuf プロファイル定義があるとします。
<code class="protobuf">message Profile { uint64 id = 1; string name = 2; bool active = 3; }</code>
次のスクリプト (「gorm.sh」) は後処理に使用できます。
<code class="bash">#!/bin/bash g () { sed "s/json:\",omitempty\"/json:\",omitempty\" gorm:\"\"/" } cat \ | g "id" "primary_key" \ | g "name" "varchar(100)" \ > .tmp && mv {.tmp,}</code>
スクリプトを呼び出すことにより、生成された protobuf ファイル (例: ./gorm.sh profile/profile.pb.go) では、結果の出力は次のようになります:
<code class="protobuf">//... type Profile struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty" gorm:"type:primary_key"` Name string `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"` } //...</code>
このアプローチにより、GORM フィールドのアノテーションを protobuf 定義に統合することができます。カスタム実装またはサードパーティ ライブラリの必要性。
以上がGORM フィールドのアノテーションを Protobuf 定義に統合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。