E-Mail-Vorschlag – Standard-API
Der Endpunkt emailsuggest schlägt wahrscheinliche E-Mail-Adressen vor, während ein Benutzer tippt, indem er Vorname, Nachname und die bereits eingegebenen Zeichen kombiniert, um bewertete Vervollständigungen zurückzugeben.
Wann dieser Endpunkt verwendet wird - Rufen Sie
emailsuggest auf, während der Benutzer seine E-Mail-Adresse noch eingibt, um Autovervollständigungsvorschläge basierend auf seinem Namen anzubieten. Um stattdessen eine vollständige E-Mail-Adresse zu validieren, siehe Email-API — E-Mail-Adresse validieren (REST) →
emailsuggest
Anfrage
Sowohl GET als auch POST werden unterstützt.
{SERVER_ADDRESS} und {LICENCE_CODE} werden von DQE bei der Kontoerstellung bereitgestellt. Wenden Sie sich an Ihren DQE-Kundenbetreuer, um diese Zugangsdaten zu erhalten.
GEThttps://{SERVER_ADDRESS}/v1/emailsuggest/?FirstName={FIRST_NAME}&LastName={LAST_NAME}&Email={EMAIL}&Country={COUNTRY_CODE}&Licence={LICENCE_CODE}
Codebeispiele
Frankreich - John Lim, teilweise "jlim@gma"
curl "https://{SERVER_ADDRESS}/v1/emailsuggest/?FirstName=John&LastName=Lim&Email=jlim%40gma&Country=FRA&Licence={LICENCE_CODE}"
fetch("https://{SERVER_ADDRESS}/v1/emailsuggest/?" + new URLSearchParams({
FirstName: "John",
LastName: "Lim",
Email: "jlim@gma",
Country: "FRA",
Licence: "{LICENCE_CODE}"
}))
.then(r => r.json())
.then(data => console.log(data));
import requests
response = requests.get(
"https://{SERVER_ADDRESS}/v1/emailsuggest/",
params={
"FirstName": "John",
"LastName": "Lim",
"Email": "jlim@gma",
"Country": "FRA",
"Licence": "{LICENCE_CODE}",
},
)
print(response.json())
<?php
$params = http_build_query([
'FirstName' => 'John',
'LastName' => 'Lim',
'Email' => 'jlim@gma',
'Country' => 'FRA',
'Licence' => '{LICENCE_CODE}',
]);
$ch = curl_init("https://{SERVER_ADDRESS}/v1/emailsuggest/?{$params}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
const axios = require('axios');
axios.get('https://{SERVER_ADDRESS}/v1/emailsuggest/', {
params: {
FirstName: 'John',
LastName: 'Lim',
Email: 'jlim@gma',
Country: 'FRA',
Licence: '{LICENCE_CODE}'
}
})
.then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient();
String url = "https://{SERVER_ADDRESS}/v1/emailsuggest/"
+ "?FirstName=John&LastName=Lim&Email=jlim%40gma&Country=FRA&Licence={LICENCE_CODE}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
using var client = new HttpClient();
var url = "https://{SERVER_ADDRESS}/v1/emailsuggest/" +
"?FirstName=John&LastName=Lim&Email=jlim%40gma&Country=FRA&Licence={LICENCE_CODE}";
var response = await client.GetAsync(url);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://{SERVER_ADDRESS}/v1/emailsuggest/" +
"?FirstName=John&LastName=Lim&Email=jlim%40gma&Country=FRA&Licence={LICENCE_CODE}"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
POSThttps://{SERVER_ADDRESS}/v1/emailsuggest/
Senden Sie alle Parameter im Request-Body im Format Content-Type: application/x-www-form-urlencoded. Die Serveradresse bleibt in der URL.
Codebeispiele
Frankreich - John Lim, teilweise "jlim@gma"
curl -X POST "https://{SERVER_ADDRESS}/v1/emailsuggest/" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "FirstName=John" \
-d "LastName=Lim" \
-d "Email=jlim@gma" \
-d "Country=FRA" \
-d "Licence={LICENCE_CODE}"
fetch("https://{SERVER_ADDRESS}/v1/emailsuggest/", {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({
FirstName: "John",
LastName: "Lim",
Email: "jlim@gma",
Country: "FRA",
Licence: "{LICENCE_CODE}"
})
})
.then(r => r.json())
.then(data => console.log(data));
import requests
response = requests.post(
"https://{SERVER_ADDRESS}/v1/emailsuggest/",
data={
"FirstName": "John",
"LastName": "Lim",
"Email": "jlim@gma",
"Country": "FRA",
"Licence": "{LICENCE_CODE}",
},
)
print(response.json())
<?php
$ch = curl_init("https://{SERVER_ADDRESS}/v1/emailsuggest/");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'FirstName' => 'John',
'LastName' => 'Lim',
'Email' => 'jlim@gma',
'Country' => 'FRA',
'Licence' => '{LICENCE_CODE}',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
const axios = require('axios');
const qs = require('querystring');
axios.post('https://{SERVER_ADDRESS}/v1/emailsuggest/', qs.stringify({
FirstName: 'John',
LastName: 'Lim',
Email: 'jlim@gma',
Country: 'FRA',
Licence: '{LICENCE_CODE}'
}))
.then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient();
String form = "FirstName=John&LastName=Lim&Email=jlim%40gma&Country=FRA&Licence={LICENCE_CODE}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://{SERVER_ADDRESS}/v1/emailsuggest/"))
.header("Content-Type", "application/x-www-form-urlencoded")
.POST(HttpRequest.BodyPublishers.ofString(form))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
using var client = new HttpClient();
var form = new Dictionary<string, string> {
["FirstName"] = "John",
["LastName"] = "Lim",
["Email"] = "jlim@gma",
["Country"] = "FRA",
["Licence"] = "{LICENCE_CODE}"
};
var response = await client.PostAsync(
"https://{SERVER_ADDRESS}/v1/emailsuggest/",
new FormUrlEncodedContent(form));
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
form := url.Values{}
form.Set("FirstName", "John")
form.Set("LastName", "Lim")
form.Set("Email", "jlim@gma")
form.Set("Country", "FRA")
form.Set("Licence", "{LICENCE_CODE}")
resp, err := http.PostForm("https://{SERVER_ADDRESS}/v1/emailsuggest/", form)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
Parameter
| Parameter | Beschreibung | Pflicht / Opt. |
|---|---|---|
| FirstName | Vom Benutzer eingegebener Vorname. | Erforderlich |
| LastName | Vom Benutzer eingegebener Nachname. | Erforderlich |
| Vom Benutzer bereits eingegebener Teil der E-Mail-Adresse. | Erforderlich | |
| Country | ISO-3166-1-Alpha-3-Ländercode. Standard:
FRA
|
Optional |
| Licence | Ihr DQE-Lizenzschlüssel oder OAuth2-Token. Wenden Sie sich an den Support, falls Sie noch keinen haben. | Erforderlich |
Antwort
Bei Erfolg gibt die API ein JSON-Objekt zurück, das die Anzahl der Ergebnisse und ein Array von E-Mail-Vorschlägen enthält.
Fachliche Lesart:
List enthält die anzeigefertigen Vorschläge für Ihr Autovervollständigungs-Dropdown, nach Wahrscheinlichkeit sortiert. Syntaxe gibt an, ob der bereits eingegebene Teil der Adresse selbst wohlgeformt ist.| Schlüssel | Beschreibung | Typ |
|---|---|---|
| Found | Anzahl der zurückgegebenen Vorschlagsergebnisse. | Integer |
| Suggestion | Array der Vorschlagsergebnisse, ein Eintrag pro übermittelter Eingabekombination. | Array |
| Instance | Benutzerdefinierter Wert, der unverändert in der Antwort zurückgegeben wird. | String |
| InputEmail | In der Anfrage übermittelter E-Mail-Wert. | String |
| Syntaxe |
ok oder ko, je nach Syntax der bereits eingegebenen E-Mail. |
String |
| List | Liste der vorgeschlagenen E-Mail-Adressen. | Array |
| ListCount | Anzahl der vorgeschlagenen E-Mail-Adressen in List. |
Integer |
Antwortbeispiel
Frankreich - John Lim, teilweise "jlim@gma"
{
"Found": 1,
"Suggestion": [
{
"Instance": "0",
"InputEmail": "jlim@gma",
"Syntaxe": "ok",
"List": [
"jlim@gmail.com",
"jlim@gmx.fr"
],
"ListCount": 2
}
]
}
Fehler
| HTTP | Fehlertyp | Antwort-Body |
|---|---|---|
| 400 | Fehlender oder leerer Pflichtparameter (z. B. FirstName) |
{"status": 400, "message": "Missing parameters", "details": "FirstName", "error": "bad request"} |
| 401 | Ungültiger oder nicht autorisierter Lizenzschlüssel | {"status": 401, "message": "Your licence is not allowed to cover this functionnality", "details": "{WRONG LICENSE}", "error": "unauthorized_client"} |
API testen
Klicken Sie auf die Schaltfläche unten, um diesen Endpunkt live in Ihrem Browser zu testen.