Dans l'entreprise où je travaille en tant qu'ingénieur logiciel, nous sommes en train de développer une API qui communique avec nos micro services et sera utilisée par nos propres produits en plus d'être une API que nos clients peuvent utiliser. Notre facteur décisif dans le choix de Golang a été la vitesse. Outre un temps d'exécution rapide, Go offre également une faible consommation de mémoire et une concurrence efficace.
Quand il s'agissait de la première étape de spécification des points de terminaison, nous recherchions une solution pour le faire dans le code car nous voulions éviter une divergence entre le code et la documentation. Notre PDG avait utilisé la même approche en utilisant Python FastApi. Nous avons donc recherché sur Google une solution FastApi pour Go et sommes tombés sur Huma. Avec Huma, on peut générer automatiquement la documentation OpenAPI à partir du code et générer une belle documentation en utilisant des éléments de feu rouge. Il génère le schéma JSON à partir des types Go et utilise le typage statique pour les paramètres de chemin/requête/en-tête, les corps, les en-têtes de réponse, etc. Il effectue automatiquement la validation du modèle d'entrée et la gestion des erreurs en fonction du schéma json.
Nous avons trouvé le framework assez flexible et il permet par exemple d'utiliser son propre routeur, même si nous nous sommes contentés de Chi qu'il utilise comme routeur par défaut. Il y a quelques inconvénients, par exemple, il ne semble pas prendre en charge les paramètres de requête de tableau, nous séparons donc les filtres par des virgules. Mais cela n’a pas été un facteur décisif.
Je prévois d'écrire davantage sur mon expérience et mes apprentissages avec Go Huma dans de prochains articles, mais jusqu'à présent, je l'ai trouvé adapté à mon objectif.
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!