ويتضمن هذا المستودع شيئين:
(أ) رمز Python 3.x والأمثلة والبرامج النصية لاختبار خدمات الويب One Scotland Gazetteer (OSG) وتنزيل FTP.
(ب) الوثائق العامة لخدمات ويب OSG وFTP.
(أ) لقد قمت بتثبيت python 3.x في نظام التشغيل الخاص بك (OS)
(ب) لقد قمت بالتسجيل في One Scotland Gazetteer (OSG) وهل يحق لك استخدام خدمة ويب OSG أو OSG FTP. لمعرفة المزيد، يرجى زيارة الموقع الإلكتروني لـ One Scotland Gazetteer.
(أ) قم بتحرير ملف development.ini
:
في المجلد الجذر لهذا المستودع، قم بتحرير ملف Development.ini وأضف اسم المستخدم وكلمة المرور الخاصين بك لـ OSG FTP وخدمات ويب OSG. يتم توفير بيانات الاعتماد هذه بواسطة One Scotland Gazetteer Custodian وقد يكون لديك بيانات مختلفة بالنسبة لـ FTP وخدمات الويب.
(ب) استخدم أمثلة خدمات الويب:
python rest.py
(ج) استخدم وظيفة FTP عن طريق تشغيل ما يلي
python download_osg_using_ftp.py
نظرة عامة: توفر هذه الوثائق معلومات حول كيفية استخدام اثنتين من خدمات "One Scotland Gazetteer" (OSG) برمجيًا:
(1) خدمة الويب؛ تتصل خدمة الويب مباشرة بقاعدة بيانات OSG وتسمح لك بالوصول إلى المعجم الجغرافي في الوقت الفعلي، مما يوفر أحدث المعلومات. يدعم OSG نوعين من الخدمات؛ "نقل الحالة التمثيلية" (REST) و"بروتوكول الوصول إلى الكائنات البسيطة" (SOAP).
(2) تصدير الملفات؛ قد يتم توفير التصدير بتنسيق نقل البيانات الاسكتلندي (SDTF) كملف CSV. سيتم جدولة الصادرات ليتم تشغيلها بتردد محدد مسبقًا. يمكن أيضًا توفير مجموعة فرعية من البيانات لتتوافق مع متطلباتك.
للحصول على معلومات إضافية، يرجى زيارة الموقع الإلكتروني لـ One Scotland Gazetteer.
تتمحور خدمات ويب OSG حول مجموعات البيانات ، التي تحتوي على حقول تحتوي بدورها على البيانات الفعلية. تُرجع كل مجموعة بيانات خدمة ويب حقولًا وبيانات مختلفة وقد تدعم أيضًا وظائف مختلفة. لدى OSG خدمتي ويب sendNGListDataSetsMessage
( القائمة من الآن فصاعدًا) والتي تُرجع مجموعات البيانات المتاحة للاستعلام، و sendNGSearchMessage
(من الآن فصاعدًا البحث ) الذي يسمح بإجراء الاستعلامات على مجموعات البيانات تلك. الحد الأقصى لعدد السجلات التي يتم إرجاعها بواسطة خدمات ويب OSG لا يمكن أن يتجاوز 250 . يمكن العثور على أوصاف خدمات OSG على REST وSOAP على التوالي.
المصادقة: تتطلب جميع خدمات ويب OSG المصادقة باستخدام username
وكلمة password
. يجب توفير username
وكلمة password
في HTTP request headers
لكل طلب يتم إرساله إلى خدمة الويب. يمكن العثور أدناه على مثال لرؤوس طلب المصادقة لكل من REST وSOAP باستخدام بيانات اعتماد مزيفة:
استراحة
Content-Type:application/json
Accept:application/json
username:Alice
password:secret
صابون
<soapenv:Header>
<v0:HeaderLogin>
<username>Alice</username>
<password>secret</password>
</v0:HeaderLogin>
</soapenv:Header>
التفويض: المصادقة مع خدمة ويب OSG باستخدام username
وكلمة password
الخاصة بك لا تعني أن لديك حق الوصول إلى جميع مجموعات بيانات OSG المتاحة. تتم إدارة الوصول إلى مجموعات البيانات من قبل أمين OSG وإذا كان الوصول مطلوبًا لمجموعات بيانات إضافية، فيجب على المستخدمين زيارة موقع One Scotland Gazetteer الإلكتروني وتقديم طلب. على سبيل المثال، قد يتم السماح للمستخدم الذي تمت مصادقته بنجاح بالوصول إلى خدمة البحث على الويب ( sendNGSearchMessage
) فقط باستخدام مجموعة بيانات EST_STANDARD_SEARCH
ولكن ليس مجموعة بيانات ADDRESS_SEARCH
.
مجموعات البيانات: يمكن لخدمة قائمة الويب إرجاع جميع مجموعات بيانات OSG المتاحة. يمكن أن تكون قائمة مجموعات بيانات OSG ديناميكية حيث يمكن لأمين OSG إنشاء مجموعات جديدة بسهولة إذا كانت هناك قيمة لها. للحصول على قائمة بجميع مجموعات البيانات المتاحة بما في ذلك الحقول الخاصة بكل مجموعة بيانات والتي يمكن الاستعلام عنها، يمكن استخدام الطلب التالي:
استراحة
هيئة الطلب
{"listdatasets":{}}
هيئة الاستجابة
"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"]}
]
}
}
الاستعلام: يتضمن الاستعلام عن بيانات OSG استخدام خدمة البحث على الويب والحقول و/أو الأشكال الهندسية. يمكن لخدمة ويب البحث تلقي المدخلات التالية:
أمثلة الراحة
(1) إرجاع سجلات OSG من مجموعة بيانات EST_STANDARD_SEARCH
.
هيئة الطلب
{"query":{
"dataset":"EST_STANDARD_SEARCH",
"type":"full"
}}
هيئة الاستجابة
{
"SearchResponseMessage": {
"NGSearchResponseData": {
"Header": {
"ResultCount": 3296208,
"ReturnCount": 250,
"ErrorCode": 0,
"ErrorMessage": "Success"
},
"Result": {
"any": [
[CONTENT OMITTED DUE TO DATA LENGTH]
]
}
}
}
}
الجدول 1. بيانات طلب HTTP التي يمكن تضمينها في الاستعلام المنشور على خدمة الويب.
قيمة | وصف | إلزامي | يكتب |
---|---|---|---|
dataset | اسم مجموعة البيانات التي سيتم الاستعلام عنها بواسطة خدمة الويب | نعم | string |
attribute | واحدة أو أكثر من سمات مجموعة البيانات التي يمكن استخدامها لتصفية النتائج التي سيتم إرجاعها. يجب أن تكون السمات المحددة من الحقول الموجودة في مجموعة البيانات. يمكن أيضًا تحديد نوع المطابقة. جميع المقارنات حساسة لحالة الأحرف. بالنسبة للسمة التي يتم تحديدها، يجب توفير اسم (الحقل) وقيمة واحدة أو أكثر. يتم تطبيق سمات متعددة بدورها لإنتاج مجموعات أصغر من النتائج التي سيتم إرجاعها (أي يتم تصنيفها معًا بشكل منطقي). | لا | AttributeType |
area | يأخذ هذا اسم المضلع الذي تم تحميله مسبقًا والذي يمكن استخدامه لتقييد النتائج بالعناصر ذات UPRN في منطقة جغرافية محددة بواسطة هذا المضلع. | لا | string |
within | وإذا توافر هذا العنصر فيجب أن يشتمل على ثلاثة عناصر فرعية: المشرق، والشمال، والمسافة. تحدد هذه العناصر منطقة ويتم إرجاع العناصر التي تحتوي على UPRN في تلك المنطقة فقط. | لا | WithinType |
sortField | يتيح ذلك فرز النتائج في أحد الحقول من مجموعة البيانات. يجب أن تكون القيمة المقدمة لهذا أحد الحقول من مجموعة البيانات. | لا | string |
sortOrder | يتم تطبيقه على sortField | لا | SortOrderType |
الجدول 2. تعريف AttributeType
قيمة | يكتب | خيارات |
---|---|---|
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 |
الجدول 3. تعريف WithinType
قيمة | يكتب | خيارات |
---|---|---|
easting | unsignedLong | 0 - 500000 |
northing | unsignedLong | 500000 - 1300000 |
distance | decimal |
الجدول 4. تعريف SortOrderType
قيمة | يكتب | خيارات |
---|---|---|
asc | string | |
desc | string |
الجدول 5. نص استجابة HTTP: يتضمن البيانات التي يتم إرجاعها في نص استجابة الخادم.
قيمة | وصف | خيارات |
---|---|---|
ResultCount | عدد عناصر البيانات التي تم العثور عليها والتي تطابق الاستعلام | |
ReturnCount | عدد عناصر البيانات التي يتم إرجاعها بواسطة خدمة الويب (الحد الأدنى ResultCount و250) | |
ErrorCode | صفر للنجاح أو غير صفر للفشل (انظر لاحقًا) | راجع جدول "رموز الخطأ". |
ErrorMessage | رسالة تصف الخطأ الذي حدث (انظر لاحقًا) | راجع جدول "رموز الخطأ". |
Result | عناصر البيانات المطابقة للاستعلام. سيعتمد التنسيق الفعلي على مجموعة البيانات التي يتم الاستعلام عنها، ولكنها ستتكون من مجموعة من العناصر المسماة بنفس اسم مجموعة البيانات، ويحتوي كل عنصر على عنصر لكل حقل في مجموعة البيانات (يُسمى نفس اسم هذا الحقل). |
الجدول 6. رموز خطأ استجابة HTTP: يتضمن جميع رموز الخطأ المحتملة التي أرجعها الخادم في نص الاستجابة
يمكن لخدمة الويب إرجاع أربعة رموز خطأ محتملة وهي التالية:
شفرة | توضيح | رسائل) |
---|---|---|
0 | تم التقديم بنجاح إلى خدمة الويب | |
1 | حدث خطأ في البيانات المنشورة على خدمة الويب | Invalid Value - Schema validation error : <error msg> |
2 | حدثت مشكلة أثناء معالجة الطلب (على سبيل المثال، طلب مجموعة بيانات غير موجودة) | 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 | خطأ في المصادقة/الترخيص | 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 |