data.taipei臺北市政府公開資料平台
臺北市政府為推動開放政府(Open Government)之資料公開政策,整合本府公開資料於單一入口網站以供大眾利用。目前資料目錄包含約130項以上資料集,不僅格式多元且隨時更新,另為提供更佳服務品質,新資料集將持續加入。
我們的目標:
- 提供政府公開資料更簡易的取得管道
將資料查詢及使用說明集中於單一入口,以提升資訊服務品質。 - 提倡政府公開資料加值及應用
鼓勵個人、企業和組織運用政府公開資料創造知識資產及便民服務,提昇臺北城市友善度。 - 提高政府施政透明度及效能
以服務、資料集、統計數據等形式公開資料,營造民眾參與協同合作的資訊基礎環境。
台北市公開政府資料平臺-開發人員專區資料服務(OGDI)透過REST(Representational State Transfer)開放標準提供政府公開資料之存取服務,它的基本格式為:
http://taipeicityopendata.cloudapp.net/v1/[container]/[dataset]?[query]
- [container]是資料服務的名稱,以台北市開放政府資料平臺為例,目前用的是TaipeiOGDI。
- [dataset]是資料集的名稱,以台北市臺北市受保護樹木為例,資料集名稱為G67ACUOLDTREE0501。
- [query] 是資料的的查詢參數,目前可以使用的是OData的$filter及$top查詢語法()。
另外要注意的一點是,如果資料集裡某個資料的屬性是空值,它會在回傳的結果中完全被忽略。在程式設計時,應該將這點列入考慮,並且掌握任何可能會遺漏的屬性。
資料分頁說明
為了同時服務更多使用者,避免任何單次查詢占據大量系統資源,影響其他使用者權益,本平台單次資料回傳筆數上線為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
採用於Atom發佈協議 ,並且可以輕易的應用在各種平台,包含Microsoft .NET、Java、Ruby、PHP和Python等環境。
JSON
OGDI可以藉由回傳JavaScript Object Notation (JSON) 格式的資料,很方便的應用在JavaScript和其他科技上。要用JSON格式回傳資料,只需要簡單的在查詢參數部分加上format=json。舉例來說,要用JSON格式取得台北市停水資訊:
http://taipeicityopendata.cloudapp.net/v1/TaipeiOGDI/StopWaterInfo?format=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。
要注意的是,如果你查詢的資料中不包含任何地理資料,OGDI對於KML的查詢會傳回空集合。