使用cURL和JavaScript操作線上Airtable API圖文詳解

帶有cURLJavaScriptAirtable API教程


如果您正在尋找一種快速簡便的方式來保存應用程序數據,那麼Airtable就是您的最佳選擇。Airtable基本上是一個像數據庫一樣的Excel工作表,具有大量的靈活性和用於檢查/創建數據的GUI。

目錄

  • 基礎入門
  • API
  • Postman中帶有HTTP請求的CRUD操作
  • 使用JavaScript進行CRUD操作
  • 小結

最近,我已經將Airtable用作我的一些演示應用程序的數據庫,我喜歡它。例如,還有其他一些不錯的選擇,例如Firebase,但是Airtable對我來說似乎最簡單。在本文中,讓我們探討如何創建基礎(Airtable的數據庫詞),然後以兩種不同的方式對它執行CRUD(創建,讀取,更新和刪除)操作,即原始HTTP請求和NPM上的Airtable JavaScript包。

基礎入門

與如今的大多數產品一樣,您可以免費使用Airtable進行註冊。他們確實有付費層,但免費層綽綽有餘,並且可能會持續一段時間。點擊在線註冊
在這裏插入圖片描述
現在您已經註冊,讓我們創建我們的第一基地。您應該進入顯示所有現有基準的屏幕。我已經有一些創建,您可以在這裏看到。
在這裏插入圖片描述
出於演示目的,我們將使用現有模板,而不是從頭開始創建模板。點擊Add a base.然後,選擇Start With a Template.
在這裏插入圖片描述
讓我們使用Project Tracker模板。幾秒鐘後,您應該會看到列出的新基地。繼續並打開它。完成後,請注意這裏有很多虛擬數據。
在這裏插入圖片描述
我建議花幾分鐘在這裏看看。執行操作時需要注意幾件事。

  • 數據的結構與Excel工作表非常相似
  • 列類型是可自定義的(字符串,數字,日期等等)
  • 不同的表格有不同的標籤(默認情況下,“設計項目”處於選中狀態)
  • 您甚至可以將圖片陣列存儲爲屬性

僅僅基於這些虛擬數據,您就可以快速瞭解Airtable多麼酷!

API

Airtable的文檔是另一個優點。它遍歷了可以對數據執行的所有CRUD操作的示例。你可以找到此處的API文檔
在這裏插入圖片描述
從那裏,選擇我們幾分鐘前創建的基礎。很酷的事情是,文檔現在將特定於該基礎中的數據。
在這裏插入圖片描述
Rate Limit部分位於docus頁面頂部,這是一件事。這就解釋了每秒可以向API發出的請求數量的限制。

“ API限制爲每秒每基礎5個請求”

您還可以購買會員,定製化需求,免費的是有一定限制的,但基本上學習測試個人使用足夠用了。

在這裏插入圖片描述

認證方式

與其他所有API一樣,您需要某種私有證書才能在您的API請求中傳遞給Airtable進行驗證。在這種情況下,專用證書是“ API Key.如果您滾動到該Authentication部分,它會告訴您更多信息”。
在這裏插入圖片描述
當我們滾動瀏覽文檔時,我已經show API Key選中了該複選框。這是找出密鑰的最簡單方法之一。儘管我在這些圖像中共享我的圖像,但是在您閱讀本文時,我將對其進行更改。

切勿與任何人共享您的API密鑰

設計項目表

在這裏插入圖片描述
我只是想澄清一下使用Airtable的方法。Fields指的是您爲表中的每個表專門定義的屬性。Airtable會自動創建一些屬性(記錄ID和創建的時間戳),但是這些屬性未包含在其中。fields.您將在下面看到此屬性。

API URL結構

API調用的工作方式如下。我正在使用示例的具體細節

將所有這些放在一起,就會得到類似的結果。

https://api.airtable.com/v0/appu53qW5mpKdJAW2/Design%20projects

如前所述,您還需要同時傳遞API密鑰 bearer token

Postman中帶有HTTP請求的CRUD操作

同樣,這些文檔確實很棒。

列出記錄

向下滾動到該List Records部分,您可以看到HTTTP請求如何檢索記錄列表。

在這裏插入圖片描述

在他們給您的URL中,您可以看到我們上面引用的不同部分嗎?還包括一些用於過濾的查詢參數。

https://api.airtable.com/v0/appu53qW5mpKdJAW2/Design%20projects?maxRecords=3&view=All%20projects

讓我們對此進行測試。我將使用Postman測試這些HTTP請求。在Postman內部,我選擇發出一個Get請求,將其傳遞給URL,然後在該Headers部分中包含API密鑰。

在這裏插入圖片描述
Airtable的每個響應都將返回一個對象,該對象的屬性records將保存我們查詢或刪除的所有記錄。很好而且很穩定!

檢索記錄

要檢索特定記錄,我們只需將要查找的記錄的ID傳遞到API的末尾,然後刪除查詢字符串參數即可。您可以從上一個請求中從返回主體中獲取一個ID。這是我的網址。

https://api.airtable.com/v0/appu53qW5mpKdJAW2/Design%20projects

您應該會收到這樣的回覆。

在這裏插入圖片描述

建立記錄

要創建一條記錄,我們使用與我們一直使用的相同的基本URL。

https://api.airtable.com/v0/appu53qW5mpKdJAW2/Design%20projects

不同之處在於這成爲一個POST請求,並且我們將要包含在請求正文中的記錄包括在內。要在Postman中傳遞JSON數據,我通常選擇raw然後JSON (application/json).

與從Airtable返回的響應類似,我們發送一個對象,該對象的屬性爲records,然後爲要創建的每個項目創建一條記錄。

在這裏插入圖片描述

注意,在返回數據中,記錄具有兩個新屬性,idcreatedTime。這使您知道記錄已成功創建。您也可以在GUI中查看新記錄以進行驗證。

在這裏插入圖片描述

更新記錄

有兩種不同的方式來更新記錄。

  • PATCH-這將更新傳入記錄中指定的字段
  • PUT-這是一個破壞性更新,將清除所有未指定的字段

您必須確定其中哪一項對您更有意義,但我將使用演示一個例子Patch。同樣,相同的基本URL。

https://api.airtable.com/v0/appu53qW5mpKdJAW2/Design%20projects

我要在體內更新的唯一內容是的名稱 Testy Test Updated!!

{
    "records": [
        {
            "id":"recBW7Qan7p8eedRy",
            "fields": {
                "Name": "Testy Test Updated!!"
            }
        }
    ]
}

檢查GUI以查看更新的記錄。

在這裏插入圖片描述

刪除記錄

最後,我們可以刪除一條記錄。爲此,我們發送DELETE請求並將記錄ID放在url的末尾。

https://api.airtable.com/v0/appu53qW5mpKdJAW2/Design%20projects?records[]=rec3u2SyIm7ZCktXU

回來的響應將驗證記錄已刪除。您也可以再次在GUI中查看。

在這裏插入圖片描述

使用JavaScript進行CRUD操作

好了,我們涵蓋了大多數細節。現在,讓我們快速看一下 NPM上的Airtable.js 瞭解如何使用JavaScript完成同一件事。

在這裏插入圖片描述

由於我們正在重複步驟,因此我將跳過圖像,僅顯示代碼片段。

設置和初始化

在您喜歡的編輯器中,打開一個文件夾並創建一個名爲的文件,app.js.然後運行以下命令將您的項目初始化爲JavaScript項目。

> npm init

然後安裝Airtable軟件包。

> npm install airtable

現在,我們需要在文件中初始化Airtable對象。

  • 需要航空表
  • 使用我們的API密鑰和基本ID創建對我們基礎的引用
  • 使用基本引用和表名創建對我們表的引用
const Airtable = require('airtable');
const base = new Airtable({ apiKey: '<YOUR_API_KEY>' }).base(
    'appqvc1jKHBIRRbSy'
);

const table = base('Design projects');

table從現在開始,對於CRUD操作,我們將使用該變量。我們進行的每個通話都會返回一個承諾。我正在使用async/await模式代替.then()和.catch()處理返回的promise。

獲取記錄

調用select()帶對象的函數,您可以在其中包含查詢參數。之前,我們使用maxRecordsview,所以我們可以在這裏做同樣的事情。

致電後,select()我們還需要致電firstPage()。這是因爲分頁。如果我們的表中有很多記錄,我們可能一次不想要它們,因此我們可以致電firstPage()獲取結果的第一頁。

const getRecords = async () => {
    const records = await table
        .select({ maxRecords: 3, view: 'All projects' })
        .firstPage();
    console.log(records);
};

獲取特定記錄

要獲取特定記錄,我們可以調用find()並傳遞我們要查找的記錄的ID。

const getRecordById = async (id) => {
    const record = await table.find(id);
    console.log(record);
};

如果您在此處註銷結果,則可能會注意到有大量信息被返回。我使用的一個技巧是去除所有多餘的數據idfields.我創建了一個minify函數來執行此操作。

const minifyRecord = (record) => {
    return {
        id: record.id,
        fields: record.fields,
    };
};

有了minify,我的日誌輸出就從此開始。
在這裏插入圖片描述
爲此…
在這裏插入圖片描述

建立記錄

要創建記錄,我們調用create()函數並傳遞一個對象來表示記錄的字段。

const createRecord = async (fields) => {
    const createdRecord = await table.create(fields);
    console.log(minifyRecord(createdRecord));
};

更新記錄

要更新記錄,請調用update()函數並傳遞記錄ID和要更新的字段。

const updateRecord = async (id, fields) => {
    const updatedRecord = await table.update(id, fields);
    console.log(minifyRecord(updatedRecord));
};

刪除記錄

要刪除記錄,請調用destroy()並傳遞您要刪除的記錄的ID。

const deleteRecord = async (id) => {
    const deletedRecord = await table.destroy(id);
    console.log(minifyRecord(deletedRecord));
};

處理錯誤

每當您發出HTTP請求時,都需要爲處理錯誤做好準備。在上面的每個示例中,您都應該在API調用周圍加上,try/catch這樣就可以處理錯誤(如果有的話)。

const deleteRecord = async (id) => {
    try {
        const deletedRecord = await table.destroy(id);
        console.log(minifyRecord(deletedRecord));
    } catch (err) {
        console.error(err);
    }
};

小結

希望您能看到在您的應用程序中使用Airtable的便捷性。如果您使用的是JavaScript,那麼這很容易,因爲NPM軟件包非常易於使用。更不用說,整體文檔也很好。

給你的問題。您正在爲應用程序使用哪種數據庫?在評論中讓我知道!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章