Maison  >  Article  >  développement back-end  >  Comment intégrer gorm.Model dans les définitions de tampons de protocole avec la prise en charge de DateTime ?

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

Barbara Streisand
Barbara Streisandoriginal
2024-10-27 05:26:29792parcourir

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!

Déclaration:
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