Maison > développement back-end > Golang > le corps du texte

Comment intégrer gorm.Model dans les définitions de tampons de protocole avec la prise en charge de DateTime ?

Barbara Streisand
Libérer: 2024-10-27 05:26:29
original
887 Les gens l'ont consulté

How to Integrate gorm.Model into Protocol Buffer Definitions with DateTime Support?

Intégration de gorm.Model dans les définitions de tampons de protocole

Lors de l'intégration des champs gorm.Model de gorm dans les définitions de protobuf, des défis surviennent en raison du manque de prise en charge datetime dans proto3. Cet article explore les solutions à ce problème.

Mappage des types de champs ProtoBuf

CreatedAt, UpdatedAt : Utilisez google.protobuf.Timestamp avec l'option gogoproto.stdtime.

DeletedAt : Gérez-le comme un champ d'horodatage opaque avec une fonction de conversion.

Limites de la génération de code

Le projet protoc-gen-gorm a été confronté à des défis avec proto2 et compatibilité proto3.

Solution de script de post-traitement

Pour intégrer les champs gorm.Model, un script de post-traitement comme gorm.sh peut être utilisé après la génération du fichier go. Ce script peut mettre à jour le code généré pour inclure des annotations spécifiques à GORM.

Exécution et résultats du script

Exécutez le script avec ./gorm.sh file.pb.go sur le pb.go généré déposer. Le script ajoutera des annotations pour l'identifiant, le nom, etc., permettant à GORM d'interagir correctement avec les champs du modèle.

Conclusion

L'intégration de gorm.Model nécessite une gestion supplémentaire des champs datetime et une génération de code personnalisé ou post-traitement. En suivant ces étapes, les développeurs peuvent intégrer avec succès les champs GORM dans leurs définitions de proto.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal