2016-10-15 64 views
0

請假定我不知道任何我會提到的事情,因爲我真的不知道。API到數據庫?


大部分將opendata網站有導出文件提出無論是在例如.csv或以.json格式(Example)的可能性。他們也總是有一個API選項卡(Example API)。

我認爲使用API​​將意味着如果數據更新,您將收到更改,而將其導出爲.csv意味着內容不會再被更改。

我的問題是:如何使用此API代碼來顯示導出.csv文件時得到的相同表格。

你會用數據庫來提取這些信息嗎?什麼樣的數據庫以及如何將API鏈接到數據庫?

回答

2

我相信使用API​​將意味着,如果數據被更新你 會得到改變,而出口也爲.csv將意味着 內容將不再被改變。

如果您將csv下載到您的計算機上,那麼csv文件將不會再更新,您是正確的。
API是你可以調用的東西 - 在這種情況下,你可以調用API,說:「嘿,你有關於xxx的最新數據嗎?」,你會得到有關你問什麼的最新信息。這並不意味着,當有新的更新時,這個站點會通知你 - 你將不得不繼續調用API(每小時,每天等),看看是否有任何改變。

我的問題是:如何使用此API代碼來顯示導出.csv文件時所獲得的表格 。

您可以:

  1. 調用來自服務器的代碼API或雲服務
  2. 讓服務器的代碼或雲服務解密(或「解析」)的響應
  3. 使用在破譯響應創建做出來的HTML表格,或將其放置到一個數據庫

WOU你是否使用數據庫來提取這些信息?什麼樣的 數據庫以及如何將API鏈接到數據庫?

您不一定需要數據庫來提取信息,儘管數據庫可以很好地放置最終數據。
您首先需要某種方式來「調用REST API」。有很多方法可以做到這一點 - 使用Shell腳本,使用Python,使用Excel VBA等。
我明白這很難形象化,所以這裏是第1步的示例,您可以在其中檢索信息。
嘗試在以下網址放置在Chrome瀏覽器的地址欄(從網站採取你向我們展示了),然後回車 http://opendata.brussels.be/api/records/1.0/search/?dataset=associations-clubs-sportifs

看看它是如何還給大量的文字與許多括號和逗號?你基本上已經要求站點給你一些數據,這是他們回覆的回覆(不同的瀏覽器工作方式不同 - IE要求你將響應下載爲.json文件)。你基本上調用了一個API。

爲了更清晰地看到這個數據,打開Chrome瀏覽器的開發者工具,並輸入以下JavaScript代碼

var url = 'http://opendata.brussels.be/api/records/1.0/search/?dataset=associations-clubs-sportifs'; 

var xhr = new XMLHttpRequest(); 
xhr.open('GET', url); 
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); 
xhr.onload = function() { 
    if (xhr.status === 200) { 
     // success 
     console.log(JSON.parse(xhr.responseText)); 
    } else { 
     // error 
     console.log(JSON.parse(xhr.responseText)); 
    } 
}; 
xhr.send(); 

當你按下回車鍵,響應會回來,指出「對象」。如果你點擊箭頭,你可以看到這是我們剛剛看到的數據的一個更清晰的版本 - 更具人類可讀性。

enter image description here

在這種情況下,我用JavaScript來檢索數據,但你可以使用任何你想要的代碼。您可以繼續使用JavaScript來破譯數據,對其進行處理並將其推入數據庫。

kintone是一個在線雲數據庫,您可以在其中定製它以運行JavaScript代碼,並將數據存儲在其數據庫中,這樣您就可以將數據存儲在網上,如下圖所示。這只是您可以使用的數據庫的一個示例。

enter image description here

還有其他的雲服務,讓你可以相互連接的不同服務API終點,像IFTTT和Zapier,但我不知道他們是否具有開放的數據連接。

0

您鏈接的頁面顯示API將值作爲JSON對象返回。要訪問數據,您只需發送一個適當的http請求,響應將是請求的數據,如JSON。如果您願意,您可以通過瀏覽器發送類似的請求。

如果您需要對數據進行處理,大多數語言都可以通過語法操作JSON對象。

+0

你可能會知道一個用戶友好的工具,我可以使用它將API值提取到數據庫/表中,而無需編碼?只需將API插入文本框並單擊創建表的魔法按鈕? – yannick