Watch-IP

Watch-IP mit Go verwenden

github.com/Digitload/watch-ip-sdk-go (v0.1.1) umschließt GET /v1/geo mit kontextbewussten Anfragen und ohne Abhängigkeiten außerhalb der Standardbibliothek.

Installation

Erfordert Go 1.21+. Dieses Modul wird schreibgeschützt aus dem Haupt-Repository von Watch-IP in ein öffentliches Repository gespiegelt, damit go get es abrufen kann.

go get

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

Schnellstart

GetGeo nimmt als ersten Parameter einen context.Context — das Go-Äquivalent zum AbortSignal des JS-SDK. Wie bei den anderen serverseitigen SDKs setzen Sie WithOrigin, um die Prüfung der erlaubten Origins des Schlüssels zu erfüllen, wenn Sie von einem Server statt von einem Browser aus aufrufen. Jedes Standortfeld ist ein Pointer, da die Felder von Watch-IP unabhängig voneinander nullable sind — prüfen Sie auf nil, bevor Sie dereferenzieren.

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("Standort für diese Verbindung nicht verfügbar")
}

Fehlerbehandlung und Timeouts

Jeder Fehlschlag liefert einen *WatchIPError mit den Feldern Status und Code zurück. Begrenzen Sie die Anfragedauer mit context.WithTimeout statt mit einer Timeout-Option auf Client-Ebene.

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)
}

Was dieses SDK nicht abdeckt

Dieses Modul ruft nur GET /v1/geo auf. IP-Abfrage, E-Mail-Validierung und Risikoprüfungen sind separate Server-zu-Server-Endpoints ohne Go-Client bisher — rufen Sie sie direkt mit net/http auf, authentifiziert auf dieselbe Weise, wie es der Authentifizierungsleitfaden beschreibt.

Verwandte Seiten