Address API - Einzeilen-Autocomplete (RESTful)

Support DQE
Support DQE
  • Aktualisiert
Autovervollständigung - Einzeilig - RESTful

Der RESTful-Ablauf zur einzeiligen Autovervollständigung ermöglicht es Nutzern, eine Freitext-Adresse in ein Feld einzugeben und über den Endpunkt single klassierte Vorschläge zu erhalten, und anschließend Nebengebäude-Optionen von compl abzurufen, sobald sie ein Ergebnis auswählen.

Zweistufiger Autovervollständigungsablauf

Der Nutzer tippt frei; /single/ liefert in Echtzeit klassierte Vorschläge. Nach der Auswahl ruft /compl/ Nebengebäude-Optionen ab (Gebäudenamen, Stockwerknummern, Wohnungsnummern).

Groß-/Kleinschreibung der Ausgabe - Die Groß-/Kleinschreibung folgt der Postnorm des betreffenden Landes.

single

RESTful-Endpunkt für die Adressautovervollständigung. Akzeptiert teilweise oder vollständige Freitexteingabe und liefert eine klassierte Liste von Adressvorschlägen. Jeder Vorschlag trägt eine StreetId, die als Eingabe für compl zur Nebengebäude-Vervollständigung dient.

Wann single verwenden Verwenden Sie diesen Endpunkt, um Adressen vorzuschlagen, während der Nutzer tippt. Er verarbeitet Teileingaben (Straßenfragment, Postleitzahl, Stadtname) und liefert alle strukturierten Felder, bereit zum Ausfüllen eines Formulars. Um zu prüfen, ob eine bereits vollständige Adresse gültig und zustellbar ist, verwenden Sie stattdessen CheckAddress. Siehe Integrationsleitfaden →

Anfrage

Sowohl GET als auch POST werden unterstützt.

{SERVER_ADDRESS}, {VERSION} und {LICENCE_CODE} werden von DQE bei der Kontoerstellung bereitgestellt. Wenden Sie sich an Ihren DQE-Kundenbetreuer, um diese Zugangsdaten zu erhalten.
Die eingegebene Adresse muss URL-codiert sein - z. B. l'église → l%27%C3%A9glise.
GEThttps://{SERVER_ADDRESS}/{VERSION}/single/?Address={INPUT}&Country={COUNTRY_CODE}&Licence={LICENCE_CODE}

cURL-Beispiels

France - partial input

curl "https://{SERVER_ADDRESS}/v1/single/?Address=8%20rue%20Victor%20Hugo%20Levall&Country=FRA&Length=38&Limit=20&Version=1&Licence={LICENCE_CODE}"
fetch("https://{SERVER_ADDRESS}/v1/single/?" + new URLSearchParams({ Address: "8 rue Victor Hugo Levall", Country: "FRA", Length: "38", Limit: "20", Version: "1", Licence: "{LICENCE_CODE}" })) .then(r => r.json()) .then(data => console.log(data));
import requests response = requests.get( "https://{SERVER_ADDRESS}/v1/single/", params={ "Address": "8 rue Victor Hugo Levall", "Country": "FRA", "Length": "38", "Limit": "20", "Version": "1", "Licence": "{LICENCE_CODE}", }, ) print(response.json())
<?php $params = http_build_query([ 'Address' => '8 rue Victor Hugo Levall', 'Country' => 'FRA', 'Length' => '38', 'Limit' => '20', 'Version' => '1', 'Licence' => '{LICENCE_CODE}', ]); $ch = curl_init("https://{SERVER_ADDRESS}/v1/single/?{$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/single/', { params: { Address: '8 rue Victor Hugo Levall', Country: 'FRA', Length: '38', Limit: '20', Version: '1', Licence: '{LICENCE_CODE}' } }) .then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient(); String url = "https://{SERVER_ADDRESS}/v1/single/" + "?Address=8%20rue%20Victor%20Hugo%20Levall&Country=FRA&Length=38&Limit=20&Version=1&Licence={LICENCE_CODE}"; HttpAnfrage request = HttpAnfrage.newBuilder() .uri(URI.create(url)) .GET() .build(); HttpAntwort<String> response = client.send(request, HttpAntwort.BodyHandlers.ofString()); System.out.println(response.body());
using var client = new HttpClient(); var url = "https://{SERVER_ADDRESS}/v1/single/" + "?Address=8%20rue%20Victor%20Hugo%20Levall&Country=FRA&Length=38&Limit=20&Version=1&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/single/" + "?Address=8%20rue%20Victor%20Hugo%20Levall&Country=FRA&Length=38&Limit=20&Version=1&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)) }

Japan - Kanji, with Langue parameter

curl "https://{SERVER_ADDRESS}/v1/single/?Address=108-6390&Country=JPN&Length=38&Langue=JP&Version=1&Licence={LICENCE_CODE}"
POSThttps://{SERVER_ADDRESS}/{VERSION}/single/

Senden Sie alle Parameter im Request-Body mit Content-Type: application/x-www-form-urlencoded. Die Serveradresse bleibt in der URL.

cURL-Beispiel

France - partial input

curl -X POST "https://{SERVER_ADDRESS}/v1/single/" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "Address=8 rue Victor Hugo Levall" \ -d "Country=FRA" \ -d "Length=38" \ -d "Limit=20" \ -d "Version=1" \ -d "Licence={LICENCE_CODE}"
fetch("https://{SERVER_ADDRESS}/v1/single/", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ Address: "8 rue Victor Hugo Levall", Country: "FRA", Length: "38", Limit: "20", Version: "1", Licence: "{LICENCE_CODE}" }) }) .then(r => r.json()) .then(data => console.log(data));
import requests response = requests.post( "https://{SERVER_ADDRESS}/v1/single/", data={ "Address": "8 rue Victor Hugo Levall", "Country": "FRA", "Length": "38", "Limit": "20", "Version": "1", "Licence": "{LICENCE_CODE}", }, ) print(response.json())
<?php $ch = curl_init("https://{SERVER_ADDRESS}/v1/single/"); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ 'Address' => '8 rue Victor Hugo Levall', 'Country' => 'FRA', 'Length' => '38', 'Limit' => '20', 'Version' => '1', '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/single/', qs.stringify({ Address: '8 rue Victor Hugo Levall', Country: 'FRA', Length: '38', Limit: '20', Version: '1', Licence: '{LICENCE_CODE}' })) .then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient(); String form = "Address=8%20rue%20Victor%20Hugo%20Levall&Country=FRA&Length=38&Limit=20&Version=1&Licence={LICENCE_CODE}"; HttpAnfrage request = HttpAnfrage.newBuilder() .uri(URI.create("https://{SERVER_ADDRESS}/v1/single/")) .header("Content-Type", "application/x-www-form-urlencoded") .POST(HttpAnfrage.BodyPublishers.ofString(form)) .build(); HttpAntwort<String> response = client.send(request, HttpAntwort.BodyHandlers.ofString()); System.out.println(response.body());
using var client = new HttpClient(); var form = new Dictionary<string, string> { ["Address"] = "8 rue Victor Hugo Levall", ["Country"] = "FRA", ["Length"] = "38", ["Limit"] = "20", ["Version"] = "1", ["Licence"] = "{LICENCE_CODE}" }; var response = await client.PostAsync( "https://{SERVER_ADDRESS}/v1/single/", 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("Address", "8 rue Victor Hugo Levall") form.Set("Country", "FRA") form.Set("Length", "38") form.Set("Limit", "20") form.Set("Version", "1") form.Set("Licence", "{LICENCE_CODE}") resp, err := http.PostForm("https://{SERVER_ADDRESS}/v1/single/", form) if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) }

Parameter

Parameter Wert Description Pflicht/Optional
Licence {LICENCE_CODE} Ihr DQE-Lizenzschlüssel oder OAuth2-Token. Wenden Sie sich an den Support, falls Sie noch keinen haben. Pflicht
Address {INPUT} Freitext-Adresszeichenfolge, die vom Nutzer eingegeben wurde. Akzeptiert Teileingaben - Straßenfragment, Hausnummer, Postleitzahl oder Stadtname. Muss URL-codiert sein. Kein Pipe-Format erforderlich - senden Sie die Rohzeichenfolge so, wie sie eingegeben wurde. Pflicht
Country {COUNTRY_CODE} ISO-3166-1-Alpha-3-Ländercode für den Adresssuchbereich. Beispiel: FRA oder GBR. Pflicht
Length {LENGTH} Maximale Zeichenlänge für zurückgegebene Adressvorschläge. Gilt nur für Adressen mit lateinischen Zeichen. Ein zu niedriger Wert kann Ergebnisse abschneiden. Standard: 38. Empfohlenes Minimum: 32. Optional
Limit {NB} Maximale Anzahl zurückgegebener Adressvorschläge. Standard: 20. Optional
Version 1 Bei Einstellung auf 1 wird der Straßentyp aus der Schlüsselspalte Street extrahiert und in einem eigenen Feld StreetType zurückgegeben. Ohne diesen Parameter bleibt der Straßentyp Teil von Street (z. B. RUE DE LA PAIX) und StreetType ist leer. Optional
Langue {LANGUAGE} Filtert Ergebnisse nach Sprache/Schrift (z. B. JPN: JP = Kanji · JK = Katakana · EN = Romanisiert). Siehe Sprachleitfaden. Optional
Filter {FILTER} Nur Frankreich. Filtert CEDEX-Adressen: 1 alle Adressen; 2 nur Nicht-CEDEX; 3 nur CEDEX. Optional

Antwort

Bei Erfolg ist die Antwort ein JSON-Objekt mit zwei Schlüsseln auf oberster Ebene: Found (Ganzzahl) und Addresses (Array von Adressvorschlagsobjekten, bis zu Limit Einträge). Das erste Ergebnis ist die engste Übereinstimmung mit der Eingabe.

Fachliche Lesart: Betrachten Sie die Antwort als eine klassierte Liste von Adressvorschlägen. Addresses[0] ist die beste Übereinstimmung; weiter unten im Array stehende Einträge sind alternative Kandidaten. Das Feld Label enthält die anzeigefertige Zeichenfolge für Ihr Autovervollständigungs-Dropdown - alles andere liefert Ihnen die strukturierten Komponenten zum Ausfüllen von Formularfeldern.

Oberste Ebene

Schlüssel Description Typ
Found Anzahl der zurückgegebenen Adressvorschlagsobjekte. Integer
Addresses Array von Adressvorschlagsobjekten. Array

Adressvorschlagsobjekt - Addresses[n]

Schlüssel Description France International
Label Anzeigefertige Zeichenfolge für ein Autovervollständigungs-Dropdown. Zahlen in [eckigen Klammern] zeigen an, dass die Nummer nicht in den Referenzdaten gefunden wurde. Siehe Feld Label - nur Anzeige für Nutzungshinweise.
Verwenden Sie Label ausschließlich zum Befüllen des Vorschlags-Dropdowns - niemals zum Speichern der Adresse.Siehe Integrationsleitfaden →
String (255) String (255)
Street Straßenname. String (38) String (150)
StreetType Straßentyp (z. B. RUE, AVENUE, BOULEVARD). Wird nur befüllt, wenn Version=1 gesetzt ist - in diesem Fall wird der Straßentyp aus Street entfernt und stattdessen hier zurückgegeben. String (20) String (20)
StreetNumber Vollständige Hausnummer einschließlich etwaiger Zusätze (bis, ter usw.). String (38) String (38)
StreetNumberOnly Nur die Hausnummer, ohne Zusatz (bis, ter usw.). String (4) String (4)
StreetNumberListCount Wenn die angefragte Nummer nicht gefunden wird oder fehlt, wird die Gesamtzahl der gültigen Hausnummern für diese Straße zurückgegeben. Kann bei einigen internationalen Adressen eine leere Zeichenfolge sein, wenn diese Daten nicht verfügbar sind. String String
IsValidStreetNumber Gültigkeitsindikator für die Hausnummer. 1, wenn die Nummer in den Referenzdaten vorhanden ist, sonst 0. Liefert bei einigen internationalen Adressen eine leere Zeichenfolge, wenn die Validierung auf Nummernebene nicht verfügbar ist. Integer Integer
StreetNumberList Durch Semikolon getrennte Liste gültiger Hausnummern. Enthält alle Nummern, wenn keine Nummer eingegeben wurde oder die eingegebene Nummer nicht gefunden wird; andernfalls enthält sie nur die gefundene Nummer. String (1024) String (1024)
StreetId Eindeutige Straßenkennung. Wird als Eingabe für compl verwendet. String (20) String (20)
PostalCode Postleitzahl der Adresse. String (10) String (10)
City Stadtname. String (38) String (50)
Hamlet Benannter Ort oder Weiler (Frankreich) oder entsprechendes Feld auf Bezirksebene (international). Die Verfügbarkeit variiert je nach Land. String (38) String (50)
SubLocality Unterort (Bezirk, Stadtteil, Vorort). Empty String (50)
SpecialDistribution Nicht in Verwendung. Wird immer als leere Zeichenfolge zurückgegeben. String String
CityId Eindeutige Stadtkennung (INSEE-Code für Frankreich). String (20) String (20)
StateCode ISO-Code der Region oder des Bundeslands (z. B. 17 für Japan). Empty String (50)
StateLabel ISO-Bezeichnung der Region oder des Bundeslands (z. B. ISHIKAWA für Japan). Not available String (50)
AdministrativeArea Landkreis oder gleichwertige Verwaltungsebene. Empty String (50)
Suburb Vorort oder Stadtteil. Empty String (50)
AdditionalAddress Zusätzliche Adressinformation (Gebäudename, Stockwerk usw.). Die Verfügbarkeit variiert je nach Land - siehe Integrationsleitfaden. Empty String (50)
Company Firmenname, der mit der Adresse verknüpft ist. String (38) String (38)
Input Normalisierte Form der übermittelten Adresse. Kann sich von der ursprünglichen Eingabe in Groß-/Kleinschreibung oder Formatierung unterscheiden. Wird nicht für alle Länder befüllt. String (255) String (255)
Country ISO-3166-1-Alpha-3-Ländercode. String (3) String (3)
Latitude Geokoordinaten der gefundenen Adresse. Nicht für alle Länder verfügbar - siehe Abdeckung. String String
Longitude Geokoordinaten der gefundenen Adresse. Nicht für alle Länder verfügbar - siehe Abdeckung. String String

Befüllt mit Version=1

Straße ohne Hausnummer ausgewählt?  Siehe Integrationsleitfaden →

Beispielantwort

Vereinigtes Königreich - Eingabe "Abbey Road NW10 7TJ London"
{ "Found": 1, "Addresses": [ { "PostalCode": "NW10 7TJ", "City": "LONDON", "Hamlet": "", "SpecialDistribution": "", "Country": "GBR", "StateCode": "", "SubLocality": "", "CityId": "1745994", "Input": "ABBEY ROAD NW10 7TJ LONDON", "Label": "Abbey Road (West London Waste)|NW10 7TJ LONDON", "AdditionalAddress": "", "StreetNumber": "", "StreetType": "", "Street": "Abbey Road", "StreetId": "7831549_NW107TJ", "IsValidStreetNumber": 1, "StreetNumberListCount":0, "StreetNumberList": "", "StreetNumberOnly": "", "StateLabel": "", "AdministrativeArea": "", "Suburb": "", "Company": "West London Waste", "Latitude": "", "Longitude": "" } ] }
Japan - Eingabe "三田", Langue=JP
{ "Found": 20, "Addresses": [ { "PostalCode": "108-6390", "City": "港区", "Hamlet": "", "SpecialDistribution": "", "Country": "JPN", "StateCode": "13", "SubLocality": "", "CityId": "402573", "Input": "三田", "Label": "〒108-6390 東京都港区三田", "AdditionalAddress": "", "StreetNumber": "", "StreetType": "", "Street": "三田", "StreetId": "558203", "IsValidStreetNumber": 1, "StreetNumberListCount":0, "StreetNumberList": "", "StreetNumberOnly": "", "StateLabel": "東京都", "AdministrativeArea": "港区", "Suburb": "", "Company": "", "Latitude": "", "Longitude": "" }, { "PostalCode": "942-0054", "City": "上越市", "Hamlet": "", "SpecialDistribution": "", "Country": "JPN", "StateCode": "15", "SubLocality": "", "CityId": "387092", "Input": "三田", "Label": "〒942-0054 新潟県上越市三田", "AdditionalAddress": "", "StreetNumber": "", "StreetType": "", "Street": "三田", "StreetId": "537719", "IsValidStreetNumber": 1, "StreetNumberListCount":0, "StreetNumberList": "", "StreetNumberOnly": "", "StateLabel": "新潟県", "AdministrativeArea": "上越市", "Suburb": "", "Company": "", "Latitude": "", "Longitude": "" } // ... 18 more results ] }

Fehler

Der RESTful-Endpunkt liefert einen strukturierten JSON-Fehlertext mit einem HTTP-Statuscode, einer Nachricht und einer Fehlerkennung.

HTTP Fehlertyp Antwortkörper
400 Fehlender Parameter Licence
{"status":400,"message":"Missing parameters","details":"Licence","error":"bad request"}
400 Leerer Parameter Licence
{"status":400,"message":"Licence must be filled","details":"Empty","error":"bad request"}
401 Falsche Lizenznummer
{"status":401,"message":"Your licence is not allowed to cover this functionnality","details":"{WRONG}","error":"unauthorized_client"}
400 Fehlender Parameter Address
{"status":400,"message":"Missing parameters","details":"Address","error":"bad request"}
400 Fehlender Parameter Country
{"status":400,"message":"Missing parameters","details":"Country","error":"bad request"}
400 Leerer Parameter Country
{"status":400,"message":"Country must be filled","details":"Empty","error":"bad request"}
400 Tippfehler im Parameternamen
{"status":400,"message":"Missing parameters","details":"Address","error":"bad request"}

API testen

Klicken Sie auf die Schaltfläche unten, um diesen Endpunkt live in Ihrem Browser zu testen.

Konsole öffnen

compl

Zweiter Schritt des einzeiligen Ansatzes. Anhand einer Straßenkennung und Hausnummer, die aus einem single-Ergebnis ausgewählt wurden, liefert eine Liste von Nebengebäude-Vorschlägen: Gebäudenamen, Stockwerknummern, Firmennamen, Wohnungsnummern.

Wann compl verwenden Verwenden Sie compl, nachdem der Nutzer eine Straße aus single ausgewählt hat. Übergeben Sie die von single zurückgegebenen Werte StreetId und StreetNumber, um detaillierte Nebengebäude-Optionen zu erhalten. Wenn für die Adresse keine Nebengebäude-Optionen vorhanden sind, werden keine nummerierten Einträge zurückgegeben.

Anfrage

Sowohl GET als auch POST werden unterstützt.

{SERVER_ADDRESS}, {VERSION} und {LICENCE_CODE} werden von DQE bei der Kontoerstellung bereitgestellt. {STREETID} wird aus der Antwort von single bezogen. Wenden Sie sich an Ihren DQE-Kundenbetreuer, um diese Zugangsdaten zu erhalten.
GEThttps://{SERVER_ADDRESS}/{VERSION}/compl/?StreetId={STREETID}&StreetNumber={STREETNUMBER}&Country={COUNTRY_CODE}&Licence={LICENCE_CODE}

cURL-Beispiel

France

curl "https://{SERVER_ADDRESS}/v1/compl/?StreetId=1454602&StreetNumber=20&Country=FRA&Licence={LICENCE_CODE}"
fetch("https://{SERVER_ADDRESS}/v1/compl/?" + new URLSearchParams({ StreetId: "1454602", StreetNumber: "20", Country: "FRA", Licence: "{LICENCE_CODE}" })) .then(r => r.json()) .then(data => console.log(data));
import requests response = requests.get( "https://{SERVER_ADDRESS}/v1/compl/", params={ "StreetId": "1454602", "StreetNumber": "20", "Country": "FRA", "Licence": "{LICENCE_CODE}", }, ) print(response.json())
<?php $params = http_build_query([ 'StreetId' => '1454602', 'StreetNumber' => '20', 'Country' => 'FRA', 'Licence' => '{LICENCE_CODE}', ]); $ch = curl_init("https://{SERVER_ADDRESS}/v1/compl/?{$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/compl/', { params: { StreetId: '1454602', StreetNumber: '20', Country: 'FRA', Licence: '{LICENCE_CODE}' } }) .then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient(); String url = "https://{SERVER_ADDRESS}/v1/compl/" + "?StreetId=1454602&StreetNumber=20&Country=FRA&Licence={LICENCE_CODE}"; HttpAnfrage request = HttpAnfrage.newBuilder() .uri(URI.create(url)) .GET() .build(); HttpAntwort<String> response = client.send(request, HttpAntwort.BodyHandlers.ofString()); System.out.println(response.body());
using var client = new HttpClient(); var url = "https://{SERVER_ADDRESS}/v1/compl/" + "?StreetId=1454602&StreetNumber=20&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/compl/" + "?StreetId=1454602&StreetNumber=20&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}/{VERSION}/compl/

Senden Sie alle Parameter im Request-Body mit Content-Type: application/x-www-form-urlencoded. Die Serveradresse bleibt in der URL.

cURL-Beispiel

France

curl -X POST "https://{SERVER_ADDRESS}/v1/compl/" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "StreetId=1454602" \ -d "StreetNumber=20" \ -d "Country=FRA" \ -d "Licence={LICENCE_CODE}"
fetch("https://{SERVER_ADDRESS}/v1/compl/", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ StreetId: "1454602", StreetNumber: "20", Country: "FRA", Licence: "{LICENCE_CODE}" }) }) .then(r => r.json()) .then(data => console.log(data));
import requests response = requests.post( "https://{SERVER_ADDRESS}/v1/compl/", data={ "StreetId": "1454602", "StreetNumber": "20", "Country": "FRA", "Licence": "{LICENCE_CODE}", }, ) print(response.json())
<?php $ch = curl_init("https://{SERVER_ADDRESS}/v1/compl/"); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ 'StreetId' => '1454602', 'StreetNumber' => '20', '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/compl/', qs.stringify({ StreetId: '1454602', StreetNumber: '20', Country: 'FRA', Licence: '{LICENCE_CODE}' })) .then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient(); String form = "StreetId=1454602&StreetNumber=20&Country=FRA&Licence={LICENCE_CODE}"; HttpAnfrage request = HttpAnfrage.newBuilder() .uri(URI.create("https://{SERVER_ADDRESS}/v1/compl/")) .header("Content-Type", "application/x-www-form-urlencoded") .POST(HttpAnfrage.BodyPublishers.ofString(form)) .build(); HttpAntwort<String> response = client.send(request, HttpAntwort.BodyHandlers.ofString()); System.out.println(response.body());
using var client = new HttpClient(); var form = new Dictionary<string, string> { ["StreetId"] = "1454602", ["StreetNumber"] = "20", ["Country"] = "FRA", ["Licence"] = "{LICENCE_CODE}" }; var response = await client.PostAsync( "https://{SERVER_ADDRESS}/v1/compl/", 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("StreetId", "1454602") form.Set("StreetNumber", "20") form.Set("Country", "FRA") form.Set("Licence", "{LICENCE_CODE}") resp, err := http.PostForm("https://{SERVER_ADDRESS}/v1/compl/", form) if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) }

Parameter

Parameter Wert Description Pflicht/Optional
Licence {LICENCE_CODE} Ihr DQE-Lizenzschlüssel oder OAuth2-Token. Wenden Sie sich an den Support, falls Sie noch keinen haben. Pflicht
StreetId {STREETID} Eindeutige Straßenkennung, die von single im Feld StreetId zurückgegeben wird. Pflicht
StreetNumber {STREETNUMBER} Vom Nutzer ausgewählte Hausnummer - entspricht dem Feld StreetNumber aus der Antwort von single. Pflicht
Country {COUNTRY_CODE} ISO-3166-1-Alpha-3-Ländercode für den Adresssuchbereich. Beispiel: FRA oder GBR. Pflicht
Length {LENGTH} Maximale Zeichenlänge für zurückgegebene Adressfelder. Gilt nur für Adressen mit lateinischen Zeichen. Ein zu niedriger Wert kann Ergebnisse abschneiden. Standard: 38. Empfohlenes Minimum: 32. Optional
Search {SEARCH} Nur für die USA: filtert Gebäudezusatz-Vorschläge basierend auf der Eingabe des Nutzers. Übergeben Sie den eingegebenen Teiltyp des Zusatzes (z. B. FL, STE, RM) - es werden nur Zusatzeinträge zurückgegeben, die diesem Wert entsprechen. Optional

Antwort

Bei Erfolg ist die Antwort ein JSON-Objekt mit zwei Schlüsseln auf oberster Ebene: Found und AdditionalAddresses (Array), sowie einem Objekt Geolocalisation. Die Geocodierungsabdeckung variiert je nach Land - siehe Geografische Abdeckung.

Fehlende Nebengebäudedaten sind kein Fehler.Siehe Integrationsleitfaden →
Schlüssel Description France International
Found Anzahl der gefundenen Adresszusätze. Integer Integer
AdditionalAddresses Array von zusätzlichen Adressobjekten. Array Array
AdditionalAddresses[0].
AdditionalAddress
Zusätzliche Adressbezeichnung (Gebäudename, Stockwerk, Wohnung usw.). String (38) String (150)
AdditionalAddresses[0].
PostalCode
Postleitzahl spezifisch für diese Untereinheit, sofern verfügbar (z. B. ZIP+4 für die USA). Empty String (10)
Geolocalisation Geolokalisierungsinformationen für die Adresse. Object Object
Geolocalisation.
Latitude
Geokoordinaten der gefundenen Adresse. Nicht für alle Länder verfügbar - siehe Abdeckung. String String
Geolocalisation.
Longitude
Geokoordinaten der gefundenen Adresse. Nicht für alle Länder verfügbar - siehe Abdeckung. String String

Beispielantwort

France
{ "Found": 5, "AdditionalAddresses": [ { "AdditionalAddress": "BATIMENT A", "PostalCode": "" }, { "AdditionalAddress": "BATIMENT B", "PostalCode": "" }, { "AdditionalAddress": "BATIMENT C", "PostalCode": "" }, { "AdditionalAddress": "BATIMENT D", "PostalCode": "" }, { "AdditionalAddress": "BATIMENT E", "PostalCode": "" } ], "Geolocalisation": { "Latitude": "48.879024", "Longitude": "2.333291" } }

Fehler

HTTP Fehlertyp Antwortkörper
400 Fehlt StreetId
{"status":400,"message":"Missing parameters","details":"StreetId","error":"bad request"}
400 Fehlt StreetNumber
{"status":400,"message":"Missing parameters","details":"StreetNumber","error":"bad request"}
400 Fehlt Country
{"status":400,"message":"Missing parameters","details":"Country","error":"bad request"}
400 Fehlt Licence
{"status":400,"message":"Missing parameters","details":"Licence","error":"bad request"}
401 Nicht autorisierter Client (Lizenz ungültig, abgelaufen oder außerhalb des Geltungsbereichs)
{"status":401,"message":"Your licence is not allowed to cover this functionnality","details":"{INVALID_LICENCE}","error":"unauthorized_client"}

API testen

Klicken Sie auf die Schaltfläche unten, um diesen Endpunkt live in Ihrem Browser zu testen.

Konsole öffnen

Siehe auch

Verknüpfung mit

War dieser Beitrag hilfreich?

0 von 0 fanden dies hilfreich