2014/02/27

YQL(Yahoo Query Language)

YQL全名為『Yahoo Query Language』,可以幫助Web開發者在Cross domain的處理



YQL有提供一個Console可以用,YQL使用方法很像在搜尋資料庫的語法:
SELECT * FROM type WHERE url="http://test.com"

YQL回傳的資料為XML或JSON,本文就採用JSON當回傳格式,像JSON還可以設定Callback Function

第一個例子以『高雄市公共腳踏車即時租賃站資訊』為例,上面僅提供XML格式,



先複製高雄市公共腳踏車即時租賃站資訊XML網址,並將下列語法貼到YQLConsole,並按下Test

SELECT * FROM xml WHERE url = "http://data.kaohsiung.gov.tw/Opendata/DownLoadSwitch.aspx?CaseNo1=AH&CaseNo2=6&Lang=C"

可以看得到底下有回傳一些JSON的資料回來,是不是很有趣呢XD


上面該段語法其實就是去撈XML網址的資料,格式為xml,是不是很簡單呢XD

在舉另一個例子,如果我要高雄市固定式違規照相設備設置地點JSON呢?
一樣先複製JSON網址,並將以下語法鍵入到文字方框

SELECT * FROM json WHERE url = "http://data.kaohsiung.gov.tw/Opendata/DownLoad.aspx?Type=2&CaseNo1=AF&CaseNo2=1&FileType=2&Lang=C"


就可以得到JSON檔案啦XD


上段語法也只是去撈高雄市固定式違規照相設備設置地點JSON
但是這都只是Test的Console罷了,要如何將YQL加入到Web呢?
以圖四為例,注意紅色方框那邊有個網址,將其複製起來,可以透過Ajax的方式去取得資料


應該會有人認為沒程式碼沒證據吧XDDD
那就參考小弟寫得幾篇文章吧XDD



參考資料:
http://developer.yahoo.com/yql/
http://data.kaohsiung.gov.tw/Opendata/DetailList.aspx?CaseNo1=AH&CaseNo2=6&Lang=C
http://data.kaohsiung.gov.tw/Opendata/DetailList.aspx?CaseNo1=AF&CaseNo2=1&Lang=C