Manchmal kommt es vor, dann man Basic Authentication in einigen REST API Schnittstellen anwenden muss. Dieses kann man mit der Standardbibliothek von GO sehr gut abbilden.
Wir gehen nun in unserem Beispiel davon aus, dass wir eine GET Abfrage an eine REST API stellen möchten. Das ganze können wir relativ einfach mit GO Lang umsetzen.
Eine Abfrage könnte wie folgt aussehen.
// Set url url := "https://" + domain + "/admin/api/2021-07/products.json?limit=250&since_id=" + id // Basic authentication basicAuth := base64.StdEncoding.EncodeToString([]byte(username + ":" + password)) // Define client client := &http.Client{} // Set request request, err := http.NewRequest("GET", url, nil) if err != nil { return ProductsReturn{}, err } // Set header request.Header.Set("Authorization", "Basic "+basicAuth) // Define response & send request response, err := client.Do(request) if err != nil { return ProductsReturn{}, err } // Decode json data var products ProductsReturn err = json.NewDecoder(response.Body).Decode(&products) if err != nil { return ProductsReturn{}, err } // Close after loop ends response.Body.Close()
Sie sehen wahrscheinlich schon, wo wir das Encoding für die Authentifizierung vorgenommen habe. Und zwar an folgender Stelle.
// Basic authentication basicAuth := base64.StdEncoding.EncodeToString([]byte(username + ":" + password))
Dazu muss nun nur noch der Header für die Abfrage angepasst werden. Wenn diese definiert ist, dann kann man den Header wie folgt ergänzen.
// Set header request.Header.Set("Authorization", "Basic "+basicAuth)
Und schon können Sie Basic Authentication in Ihrer Abfrage nutzen.