Maison  >  Article  >  développement back-end  >  Quels sont les avantages du framework gin ?

Quels sont les avantages du framework gin ?

藏色散人
藏色散人avant
2020-09-16 09:38:075956parcourir

Ce qui suit est la colonne tutoriel golang pour vous présenter les avantages du framework gin. J'espère qu'il sera utile aux amis dans le besoin !

Quels sont les avantages du framework gin ?

Comparaison entre gin et django

Middleware

Utilisez la fonctionnalité dernier entré, premier sorti de la pile d'appels de fonction pour terminer intelligemment les opérations de post-traitement effectuées par le middleware dans le traitement personnalisé fonction.

La méthode de traitement de Django consiste à définir une classe, à définir une méthode de traitement avant le traitement de la demande et à définir une méthode de traitement après le traitement de la demande.

La méthode gin est plus flexible, mais la méthode django est plus claire.

Liaison des paramètres de requête

Pour obtenir le contenu de la requête, dans la liaison de modèle, il existe les scénarios suivants

  • L'échec de la liaison est le cas l'utilisateur le gère lui-même ou le framework doit-il le gérer de manière uniforme ?
  • L'utilisateur doit-il se soucier du contenu de la demande et choisir un classeur différent

La réponse donnée dans le fichier ? Le cadre de gin pour ces scénarios est le suivant : Fournir différentes méthodes pour répondre aux besoins ci-dessus. Le point clé ici réside toujours dans le scénario d’utilisation.

// 自动更加请求头选择不同的绑定器对象进行处理
func (c *Context) Bind(obj interface{}) error {
    b := binding.Default(c.Request.Method, c.ContentType())
    return c.MustBindWith(obj, b)
}

// 绑定失败后,框架会进行统一的处理
func (c *Context) MustBindWith(obj interface{}, b binding.Binding) (err error) {
    if err = c.ShouldBindWith(obj, b); err != nil {
        c.AbortWithError(400, err).SetType(ErrorTypeBind)
    }

    return
}

// 用户可以自行选择绑定器,自行对出错处理。自行选择绑定器,这也意味着用户可以自己实现绑定器。
// 例如:嫌弃默认的json处理是用官方的json处理包,嫌弃它慢,可以自己实现Binding接口
func (c *Context) ShouldBindWith(obj interface{}, b binding.Binding) error {
    return b.Bind(c.Request, obj)
}

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer