Watch-IP

Utiliser Watch-IP avec Go

github.com/Digitload/watch-ip-sdk-go (v0.1.1) encapsule GET /v1/geo avec des requêtes tenant compte du contexte (context) et aucune dépendance en dehors de la bibliothèque standard.

Installation

Nécessite Go 1.21+. Ce module est répliqué en lecture seule depuis le dépôt principal de Watch-IP vers un dépôt public afin que go get puisse le récupérer.

go get

go get github.com/Digitload/watch-ip-sdk-go

Démarrage rapide

GetGeo prend un context.Context comme premier argument — l'équivalent en Go de l'AbortSignal du SDK JS. Comme pour les autres SDK côté serveur, définissez WithOrigin pour satisfaire le contrôle des origines autorisées de la clé lors d'un appel depuis un serveur plutôt que depuis un navigateur. Chaque champ de localisation est un pointeur, car les champs de Watch-IP sont annulables indépendamment les uns des autres — vérifiez nil avant de déréférencer.

Go

client, err := watchip.New("wip_pub_xxxxxxxx", watchip.WithOrigin("https://example.com"))
if err != nil {
    log.Fatal(err)
}

geo, err := client.GetGeo(context.Background())
if err != nil {
    log.Fatal(err)
}

if geo.Country != nil && geo.City != nil {
    fmt.Println(*geo.Country, *geo.City)
} else {
    fmt.Println("position indisponible pour cette connexion")
}

Gestion des erreurs et délais d'expiration

Chaque échec renvoie un *WatchIPError avec les champs Status et Code. Limitez la durée de la requête avec context.WithTimeout plutôt qu'avec une option de délai au niveau du client.

Go

ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()

geo, err := client.GetGeo(ctx)
var wipErr *watchip.WatchIPError
if errors.As(err, &wipErr) {
    fmt.Println(wipErr.Code, wipErr.Status, wipErr.Message)
}

Ce que ce SDK ne couvre pas

Ce module n'appelle que GET /v1/geo. La recherche d'IP, la validation d'e-mail et les vérifications de risque sont des points de terminaison serveur à serveur distincts, sans client Go pour l'instant — appelez-les directement avec net/http, authentifiés de la même façon que le décrit le guide d'authentification.

Pages associées