Maison >développement back-end >Golang >Native Go peut-il gérer les paramètres d'URL ?

Native Go peut-il gérer les paramètres d'URL ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-12 14:37:02887parcourir

Can Native Go Handle URL Parameters?

Mappage des paramètres d'URL dans Native Go

Le Go natif peut-il gérer les paramètres d'URL en ligne ? Considérez l'URL http://localhost:8080/blob/123/test, que nous souhaitons mapper à /blob/{id}/test. Cette question explore les capacités natives de Go pour de tels mappages sans recourir à des bibliothèques externes.

Approche native :

Native Go n'offre pas de mécanisme simple pour cette tâche. Cependant, son implémentation manuelle est relativement simple.

La fonction suivante, getCode(), analyse l'URL de la requête et extrait le code de la première partie du chemin :

func getCode(r *http.Request, defaultCode int) (int, string) {
        p := strings.Split(r.URL.Path, "/")
        if len(p) == 1 {
                return defaultCode, p[0]
        } else if len(p) > 1 {
                code, err := strconv.Atoi(p[0])
                if err == nil {
                        return code, p[1]
                } else {
                        return defaultCode, p[1]
                }
        } else {
                return defaultCode, ""
        }
}
  • La fonction strings.Split divise le chemin en parties.
  • S'il n'y a qu'une seule partie, renvoie le code par défaut et la seule partie.
  • S'il y a plusieurs parties, essayez de convertir le première partie en un entier (code). En cas de succès, renvoyez le code et la deuxième partie. Sinon, renvoyez le code par défaut et la deuxième partie.
  • Sinon, renvoyez le code par défaut et une chaîne vide.

Cette fonction fournit un moyen de base pour mapper les paramètres d'URL en natif Go, vous permettant d'interagir efficacement avec des URL telles que /blob/{id}/test.

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