دمج التعليقات التوضيحية الميدانية في تعريفات البروتوبوف
قد يواجه المطورون الذين يسعون إلى الاستفادة من التعليقات التوضيحية الميدانية المقدمة من GORM ضمن تعريفات البروتوبوف الخاصة بهم تحديات بسبب الغياب من نوع التاريخ والوقت الأصلي في بناء جملة Protobuf 3.
لمعالجة هذا، يمكن استخدام برنامج نصي لمرحلة ما بعد المعالجة لزيادة ملفات proto التي تم إنشاؤها مع التعليقات التوضيحية GORM المطلوبة. على سبيل المثال، في ضوء تعريف ملف تعريف protobuf التالي:
message Profile {
uint64 id = 1;
string name = 2;
bool active = 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,}
من خلال استدعاء البرنامج النصي في ملف protobuf الذي تم إنشاؤه (على سبيل المثال، ./gorm.sh Profile/profile.pb.go)، ستكون النتيجة الناتجة:
//...
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"`
}
//...
يتيح هذا الأسلوب دمج التعليقات التوضيحية لحقل GORM في تعريفات protobuf دون الحاجة إلى تطبيقات مخصصة أو مكتبات تابعة لجهات خارجية.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3