台北市公開政府資料平臺-開發人員專區資料服務(OGDI)透過REST(Representational
State Transfer)開放標準提供政府公開資料之存取服務,它的基本格式為
http://taipeicityopendata.cloudapp.net/v1/[container]/[dataset]?[query]
另外要注意的一點是,如果資料集裡某個資料的屬性是空值,它會在回傳的結果中完全被忽略。在程式設計時,應該將這點列入考慮,並且掌握任何可能會遺漏的屬性。
為了同時服務更多使用者,避免任何單次查詢占據大量系統資源,影響其他使用者權益,本平台單次資料回傳筆數上線為1000筆,並透過資料分頁方式提供超過1000筆以上資料查詢。當所查詢的資料超過1000 筆時,網頁Response 的Header 將會包含x-ms-continuation-NextPartitionKey、x-ms-continuation-NextRowKey兩個Key值。假如x-ms-continuation-NextPartitionKey值為NPKey,x-ms-continuation-NextRowKey值為NRKey, 使用可以在原本查詢參數上加上NextPartitionKey=NPKey及NextRowKey=NRKey兩個參數,即可查到下一個分頁的資料。
為避免網址裡面出現非英文字母的符號(比如中文或特殊字元),造成傳遞或連結網址的錯誤,在進行資料查詢時,網址參數需要URL編碼(URL encode)。目前大部分開發語言(.Net、Java、PHP....)皆有提供URL Encode 功能,請參閱各開發平台URL Enclode使用方式
AtomPub
,並且可以輕易的應用在各種平台,包含Microsoft
.NET、Java、Ruby、PHP和Python等環境。
JSON
OGDI可以藉由回傳JavaScript Object Notation (JSON)
格式的資料,很方便的應用在JavaScript和其他科技上。要用JSON格式回傳資料,只需要簡單的在查詢參數部分加上format=json。舉例來說,要用JSON格式取得台北市停水資訊:
JSONP
為了減少安全漏洞及XSS攻擊,Web瀏覽器一般防止客戶端的JavaScript應用程式發起作出HTTP請求由一個網域(例如,yourdomain.com)到其他網域(例如,ogdi.cloudapp)。這可以防止JavaScript應用程序在另一個領域作出直接的調用到OGDI數據服務,但有多種技術可以做到這一點,像是被廣泛使用的IFRAMES-based technique
。
OGDI也支援JSONP
。使用這個技術,OGDI的資料服務會執行你所指定的callback function並將查詢結果以JSON格式傳入。要使用這項技術需要加入以下參數:format=json&callback=yourCallback,yourCallback是你在發出查詢的網頁中定義的JavaScript callback function。
Geospatial Data
OGDI支援的眾多data sets裡也包含了地理資料,採用Keyhole Markup Language (KML)
格式。這種格式與許多熱門的Desktop和Web-based 地圖技術相容,包含Microsoft
Bing Maps
、Google Maps
、Yahoo! Maps
和Google Earth
。
要用KML格式回傳地理資料,只需要在查詢參數部分加上format=kml。