Maison > Article > développement back-end > Implémentation élégante de l'architecture API Golang REST
Il y a un dicton selon lequel l'API écrite en Golang ne peut pas être aussi simple et universelle que d'autres langages. Mais en réalité, j'ai rencontré beaucoup de code API REST avec beaucoup d'abstractions, rendant la base de code confuse et complexe, nuisant finalement à la lisibilité et à la maintenabilité.
Dans cette série, nous verrons comment créer une liste TODO d'API REST au niveau du produit, une architecture d'extension durable, en commençant par les interfaces de routage et de code, puis en ajoutant une base de données mongo et une couche de données Badger, et puis est la couche de protocole d'autorisation (OAuth 2.0)
Dans cette série, nous utiliserons le routage chi.
Eh bien, en fait, peu importe ce que vous choisissez d'utiliser. Peu importe ce que vous utilisez pour le routage, les concepts abordés dans cette série vous seront utiles. Mais il y a les avantages suivants qui me font penser que Chi-router est supérieur à la plupart des alternatives :
et net/http
100 % compatible avec la bibliothèque standard --- disponible dans l'écosystème Go Utilisez n'importe quel paquet http ou middleware compatible net/http 🎜>
Le code ci-dessus est au centre de certaines bonnes pratiques
Utiliser un package séparé Pour implémentez la logique de routage, regroupez-les, puis montez-les :
r.Mount("/api/todo", todo.Routes())Le gestionnaire a une signature de fonction , ce qui signifie que le gestionnaire n'est pas différent de la façon dont vous écrivez net/http en utilisant la bibliothèque standard.
Utilisez render.JSON, un wrapper d'encodage/json, qui échappera automatiquement tout le code HTML dans votre réponse JSON et définira le type de contenu sur application/jsonfunc (w http.ResponseWriter,r *http.Request)
Dans notre prochain article de cette série, nous continuerons à prendre en charge la configuration et l'état partagé. La plupart des projets nécessitent généralement une configuration supplémentaire, telle que des connexions à une base de données, etc. Nous en discuterons dans le prochain article.
Tutoriel recommandé : "Go Tutorial"
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!