Watch-IP

Usa Watch-IP con Go

github.com/Digitload/watch-ip-sdk-go (v0.1.1) incapsula GET /v1/geo con richieste che tengono conto del context, senza dipendenze al di fuori della libreria standard.

Installazione

Richiede Go 1.21+. Questo modulo è replicato in sola lettura dal repository principale di Watch-IP verso un repository pubblico, così go get può scaricarlo.

go get

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

Avvio rapido

GetGeo prende un context.Context come primo argomento — l'equivalente in Go dell'AbortSignal dell'SDK JS. Come per gli altri SDK lato server, imposta WithOrigin per soddisfare il controllo delle origini consentite della chiave quando chiami da un server anziché da un browser. Ogni campo di posizione è un puntatore, poiché i campi di Watch-IP sono nullable in modo indipendente — controlla se è nil prima di dereferenziarlo.

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("posizione non disponibile per questa connessione")
}

Gestione degli errori e timeout

Ogni fallimento restituisce un *WatchIPError con i campi Status e Code. Limita il tempo della richiesta con context.WithTimeout invece di un'opzione di timeout a livello di 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)
}

Cosa non copre questo SDK

Questo modulo chiama solo GET /v1/geo. La ricerca IP, la validazione email e i controlli di rischio sono endpoint separati da server a server, per cui non esiste ancora un client Go — chiamali direttamente con net/http, autenticandoti nello stesso modo descritto nella guida all'autenticazione.

Pagine correlate