Dieses Repository enthält zwei Dinge:
(A) Python 3.x-Code, Beispiele und Skripte zum Testen der One Scotland Gazetteer (OSG)-Webdienste und zum FTP-Download.
(B) Allgemeine Dokumentation für die OSG-Webdienste und FTP.
(A) Sie haben Python 3.x in Ihrem Betriebssystem (OS) installiert.
(B) Sie haben sich beim One Scotland Gazetteer (OSG) registriert und können zur Nutzung des OSG-Webdienstes oder des OSG-FTP berechtigt sein. Um mehr zu erfahren, besuchen Sie bitte die Website von One Scotland Gazetteer.
(A) Bearbeiten Sie die development.ini
:
Bearbeiten Sie im Stammordner dieses Repositorys die Datei development.ini und fügen Sie Ihren Benutzernamen und Ihr Passwort für den OSG-FTP und die OSG-Webdienste hinzu. Diese Anmeldeinformationen werden vom One Scotland Gazetteer Custodian bereitgestellt und Sie können für die FTP- und Webdienste unterschiedliche Anmeldeinformationen verwenden.
(B) Verwenden Sie die Beispiele für Webdienste:
python rest.py
(C) Nutzen Sie die FTP-Funktionalität, indem Sie Folgendes ausführen
python download_osg_using_ftp.py
Übersicht: Diese Dokumentation enthält Informationen zur programmgesteuerten Nutzung von zwei der „One Scotland Gazetteer“ (OSG)-Dienste:
(1) Webdienst; Der Webdienst kommuniziert direkt mit der OSG-Datenbank und ermöglicht Ihnen den Zugriff auf das Ortsverzeichnis in Echtzeit und stellt so die aktuellsten Informationen bereit. OSG unterstützt zwei Arten von Diensten; den „Representational State Transfer“ (REST) und das „Simple Object Access Protocol“ (SOAP).
(2) Dateien exportieren; Ein Export kann im Scottish Data Transfer Format (SDTF) als CSV-Datei erfolgen. Exporte werden so geplant, dass sie in einer vorgegebenen Häufigkeit ausgeführt werden. Je nach Ihren Anforderungen kann auch eine Teilmenge der Daten bereitgestellt werden.
Weitere Informationen finden Sie auf der Website des One Scotland Gazetteer.
Die OSG-Webdienste basieren auf Datensätzen , die Felder enthalten, die wiederum die eigentlichen Daten enthalten. Jeder Webservice-Datensatz gibt unterschiedliche Felder und Daten zurück und unterstützt möglicherweise auch unterschiedliche Funktionen. Das OSG verfügt über zwei Webdienste: sendNGListDataSetsMessage
(im Folgenden „list “), die die für die Abfrage verfügbaren Datensätze zurückgeben, und sendNGSearchMessage
(im Folgenden „search“ ), mit dem Abfragen für diese Datensätze durchgeführt werden können. Die maximale Anzahl der von den OSG-Webdiensten zurückgegebenen Datensätze darf 250 nicht überschreiten. Die Beschreibungen der OSG-Dienste finden Sie unter REST bzw. SOAP.
Authentifizierung: Alle OSG-Webdienste erfordern eine Authentifizierung mit einem username
und einem password
. Für jede an den Webdienst gesendete Anfrage sollten in den HTTP request headers
sowohl username
als auch ein password
angegeben werden. Ein Beispiel für die Authentifizierungsanforderungsheader für REST und SOAP mit gefälschten Anmeldeinformationen finden Sie unten:
AUSRUHEN
Content-Type:application/json
Accept:application/json
username:Alice
password:secret
SEIFE
<soapenv:Header>
<v0:HeaderLogin>
<username>Alice</username>
<password>secret</password>
</v0:HeaderLogin>
</soapenv:Header>
Autorisierung: Die Authentifizierung beim OSG-Webdienst mit Ihrem username
und password
bedeutet nicht, dass Sie Zugriff auf alle verfügbaren OSG-Datensätze haben. Der Zugriff auf Datensätze wird vom OSG-Verwalter verwaltet. Wenn Zugriff auf zusätzliche Datensätze benötigt wird, müssen die Benutzer die Website von One Scotland Gazetteer besuchen und eine Anfrage stellen. Beispielsweise kann ein erfolgreich authentifizierter Benutzer berechtigt sein, nur mit dem Datensatz EST_STANDARD_SEARCH
, nicht aber mit dem Datensatz ADDRESS_SEARCH
auf den Such -Webdienst ( sendNGSearchMessage
) zuzugreifen.
Datensätze: Der Listen- Webdienst kann alle verfügbaren OSG-Datensätze zurückgeben. Die Liste der OSG-Datensätze kann dynamisch sein, da der OSG-Verwalter bei Bedarf problemlos neue Datensätze erstellen kann. Um eine Liste aller verfügbaren Datensätze einschließlich der Felder für jeden Datensatz zu erhalten, die abgefragt werden können, kann die folgende Anfrage verwendet werden:
AUSRUHEN
Anforderungstext
{"listdatasets":{}}
Antwortkörper
"ListDataSetsResponseMessage":{
"Header":{
"ResultCount":8,
"ReturnCount":8,
"ErrorCode":0,
"ErrorMessage":"Success"
},
"NGListDataSetsResponseData":[
{"DataSet":"EST_STANDARD_SEARCH","Col":["Address_One_Line","Custodian","Easting","Northing","Parent_UPRN","Postcode","Search_Building_Name","Search_Building_No","Search_Postcode_No_Space","Search_Street_Name","Search_Town","Status","UPRN","USRN"]},
{"DataSet":"FVGIS_STANDARD_SEARCH","Col":["Address_One_Line","address_one_line_custom","County_Name","Custodian","Easting","Locality_Name","Northing","paon","PAO_NO","Postcode","Post_Town","p_text","record_type_id","saon","SAO_NO","search_building","search_building_name","search_building_no","search_street_name","search_town","Status","s_text","Street_Descriptor","Town","uprn","usrn","x_coordinate","y_coordinate"]},
{"DataSet":"FVGIS_STREET_SEARCH","Col":["Custodian","End_Easting","End_Northing","Local_Authority","Locality","search_street_name","search_street_town","Start_Easting","Start_Northing","Street_Name","street_one_line","Town","usrn"]},
{"DataSet":"GLASGOW_ACCESS_SAP","Col":["ADDRESS_ONE_LINE","ADR03","ADR04","FLOOR","LAND1","LOCALITY","ORT01","ORT02","PAO_NO","PSTLZ","P_TEXT","SAO_NO","search_line_one","search_postcode_no_space","STATE","S_TEXT","STREET_DESCRIPTOR","UPRN"]},
{"DataSet":"STANDARD_SEARCH","Col":["ADDRESS_ONE_LINE","Custodian","Easting","Northing","Postcode","search_building_name","search_building_no","search_street_name","search_town","Status","UPRN"]},
{"DataSet":"STANDARD_SEARCH_OLDP","Col":["address_one_line","Custodian","Easting","Northing","Postcode","search_building_name","search_building_no","search_postcode_no_space","search_street_name","search_town","Status","uprn"]},
{"DataSet":"STD_ADDRESS_SEARCH","Col":["ADD_LINE_1","ADD_LINE_2","ADD_LINE_3","address_string","la_code","POST_CODE","start_date","TOWN","UPRN","USRN","x_coord","y_coord"]},
{"DataSet":"WLC_SEARCH","Col":["Address_One_Line","address_one_line_custom","County_Name","Custodian","Easting","Locality_Name","Northing","paon","PAO_NO","Postcode","Post_Town","p_text","record_type_id","saon","SAO_NO","search_building","search_building_name","search_building_no","search_street_name","search_town","Status","s_text","Street_Descriptor","Town","uprn","usrn","x_coordinate","y_coordinate"]}
]
}
}
Abfrage: Die Abfrage der OSG-Daten umfasst die Verwendung des Such -Webdienstes und von Feldern und/oder Geometrien. Der Suchwebdienst kann die folgenden Eingaben empfangen:
REST-Beispiele
(1) OSG-Datensätze aus dem EST_STANDARD_SEARCH
Datensatz zurückgeben.
Anforderungstext
{"query":{
"dataset":"EST_STANDARD_SEARCH",
"type":"full"
}}
Antwortkörper
{
"SearchResponseMessage": {
"NGSearchResponseData": {
"Header": {
"ResultCount": 3296208,
"ReturnCount": 250,
"ErrorCode": 0,
"ErrorMessage": "Success"
},
"Result": {
"any": [
[CONTENT OMITTED DUE TO DATA LENGTH]
]
}
}
}
}
Tabelle 1. HTTP-Anforderungsdaten, die in die an den Webdienst gesendete Abfrage einbezogen werden können.
Wert | Beschreibung | Obligatorisch | Typ |
---|---|---|---|
dataset | Der Name des Datensatzes, der vom Webdienst abgefragt werden soll | Ja | string |
attribute | Ein oder mehrere Attribute des Datensatzes, die zum Filtern der zurückzugebenden Ergebnisse verwendet werden können. Die angegebenen Attribute müssen aus den Feldern im Datensatz stammen. Es kann auch ein Matchtype angegeben werden. Bei allen Vergleichen wird die Groß-/Kleinschreibung nicht beachtet. Für das angegebene Attribut müssen ein Name (des Feldes) und ein oder mehrere Werte angegeben werden. Mehrere Attribute werden nacheinander angewendet, um kleinere Ergebnismengen zurückzugeben (dh sie werden logisch zusammen gebrandet). | NEIN | AttributeType |
area | Dies erhält den Namen eines vorinstallierten Polygons, das verwendet werden kann, um Ergebnisse auf Elemente mit einer UPRN in einem durch dieses Polygon definierten geografischen Gebiet zu beschränken. | NEIN | string |
within | Wenn dieses Element angegeben wird, muss es drei Unterelemente enthalten: einen Ostwert, einen Nordwert und eine Entfernung. Diese Elemente definieren einen Bereich und nur Elemente mit einer UPRN in diesem Bereich werden zurückgegeben. | NEIN | WithinType |
sortField | Dadurch können die Ergebnisse nach einem der Felder aus dem Datensatz sortiert werden. Der hierfür bereitgestellte Wert muss eines der Felder aus dem Datensatz sein. | NEIN | string |
sortOrder | Auf das sortField angewendet | NEIN | SortOrderType |
Tabelle 2. Definition des AttributeType
Wert | Typ | Optionen |
---|---|---|
matchtype | string | equal to (default) greater than greater than or equal to less than less than or equal to not equal to contains between in not in |
name | string | |
value | string |
Tabelle 3. Definition des WithinType
Wert | Typ | Optionen |
---|---|---|
easting | unsignedLong | 0 - 500000 |
northing | unsignedLong | 500000 - 1300000 |
distance | decimal |
Tabelle 4. Definition des SortOrderType
Wert | Typ | Optionen |
---|---|---|
asc | string | |
desc | string |
Tabelle 5. HTTP-Antworttext: Enthält die Daten, die im Antworttext des Servers zurückgegeben werden.
Wert | Beschreibung | Optionen |
---|---|---|
ResultCount | Die Anzahl der gefundenen Datenelemente, die mit der Abfrage übereinstimmen | |
ReturnCount | Die Anzahl der vom Webdienst zurückgegebenen Datenelemente (das Minimum von ResultCount und 250) | |
ErrorCode | Null für Erfolg oder ungleich Null für Misserfolg (siehe später) | Siehe Tabelle „Fehlercodes“. |
ErrorMessage | Eine Meldung, die einen aufgetretenen Fehler beschreibt (siehe später) | Siehe Tabelle „Fehlercodes“. |
Result | Die Datenelemente, die der Abfrage entsprechen. Das tatsächliche Format hängt vom abgefragten Datensatz ab, besteht jedoch aus einer Reihe von Elementen mit dem gleichen Namen wie der Datensatz, wobei jedes Element ein Element für jedes Feld im Datensatz enthält (mit dem gleichen Namen wie das Feld). |
Tabelle 6. HTTP-Antwortfehlercodes: Enthält alle möglichen Fehlercodes, die vom Server im Antworttext zurückgegeben werden
Der Webdienst kann vier mögliche Fehlercodes zurückgeben:
Code | Erläuterung | Nachricht(en) |
---|---|---|
0 | Erfolgreiche Übermittlung an den Webservice | |
1 | Fehler bei den an den Webdienst gesendeten Daten | Invalid Value - Schema validation error : <error msg> |
2 | Bei der Anforderungsverarbeitung ist ein Problem aufgetreten (z. B. beim Anfordern eines Datensatzes, der nicht vorhanden ist). | Invalid dataset [<dataset>] Invalid attribute name for dataset <dataset> [<attr_name>] <attr_name>: Invalid Date [<value>] expected format YYYY-MM-DD <attr_name>: Invalid Number [<value>] Invalid area [<area>] The dataset <dataset> does not support filtering on area polygon (<area>) awaiting initial index build - please try again later Invalid sort_field for dataset <dataset> [<sort_field>] |
3 | Authentifizierungs-/Autorisierungsfehler | Invalid Username/Password The address your computer is accessing this site from (xxx.xxx.xxx.xxx) has been blocked due to excessive failed login attempts. To have this block removed, please contact <contact email>. Alternatively, the block will be automatically removed in two hours time An unknown login failure occurred. The administrators have been notified of the event You do not have permission to use this service Missing authentication header in soap request |