協力廠商API

Web API有時稱為第三方API。 這就像交易中的當事方一樣。 在我們的連結範例中,您(或更具體地說,您的瀏覽器)是頁面請求中的第一方。 網頁伺服器是第二方。 第三個在哪裡?

網頁通常包含來自其他主機或來源的內容或資源。 在這些情況下,當您的瀏覽器開始顯示頁面時,會對託管這些資源的其他主機或「第三方」發出另一組請求。 這很常見,尤其是針對視訊或影像等媒體內容,也針對在檢視或使用資料時需要更新的資料。 取得當天的目前時間、目前的天氣或特定人員的個人化歡迎訊息,都是第三方API可以在正確時間提供正確資源的範例。 這些請求通常來自這些協力廠商API。

Web API的常見用法

除了白天時間、天氣或個人化內容之外,Web API還有許多用途。 twitter、TikTok、Facebook、LinkedIn、Snapchat、Pinterest等社群媒體平台有多種程式設計師可搭配其應用程式使用的API。 當然,Adobe也有多種程式設計師使用的API,讓他們的軟體可以與Adobe產品和服務互動。 軟體產品和服務透過這些API存取其他軟體產品和服務。

範例API

瀏覽器API可讓程式設計師直接與瀏覽器的功能互動。 Battery API可讓軟體檢查裝置的電池狀態,以便視需要提醒您。 剪貼簿API可讓軟體隨裝置的剪貼簿複製或貼上。 全熒幕API可讓軟體提供選項,將檢視展開至裝置的全熒幕,例如YouTube。

Adobe Experience Platform資料存取API是網頁API,可讓程式設計師從Adobe Experience Platform存取及下載資料集檔案,以便在自己的程式中使用客戶設定檔資料。 這類API經常會成為軟體自動化流程的一部分,也就是將軟體設定為使用數個API組合來執行一系列步驟。 與手動執行這些相同步驟相比,這通常可大幅節省成本。

api端點

當程式設計師在他們的程式中「使用」瀏覽器或網頁API時,他們通常會請求傳送或接收資源,例如我們的請求網頁的範例瀏覽器。 API檔案通常會列出這些請求的「端點」,例如: https://platform.adobe.io/data/foundation/export/files/{dataSetFileId}。 這是程式設計師用來取得資料集檔案的平台資料存取API的特定模式或「端點」。

由這些大括弧括住的{dataSetFileId}代表程式設計師在要求中需要傳送的值。 因此,實際API要求中的URL類似於https://platform.adobe.io/data/foundation/export/files/xyz123brb,其中xyz123brb必須是程式設計師想要接收的資料集檔案的有效ID。

換句話說,就像瀏覽器在特定URL取得頁面、API請求從特定端點取得資源,或傳送資源給特定端點(例如此資料集範例)。

HTTP要求方法

此時,應該清楚網頁API會對網頁或資料集等資源提出請求。 和大多數軟體概念一樣,這些HTTP請求遵循可重複的模式。 要求會從軟體應用程式傳送至另一個軟體應用程式,評估要求並做出回應:瀏覽器會從網頁伺服器要求頁面,並做出頁面內容的回應。

從請求到回應的整個程式涉及許多較小且非常詳細的步驟,但請求方法卻相當簡單明瞭。 請求方法會定義所請求的作業。

GET

在要求提供可提供資源的回應(例如我們的網頁和資料集範例)時,會使用GET要求方法。 當我們在瀏覽器中按一下連結,或在行動裝置上點選連結,我們即會在幕後提出GET請求。

POST

POST方法隨要求傳送資料。 「要求」傳送資料聽起來可能有些奇怪,但提出API要求就是要求端點(接收軟體)接受要求,而且在POST的情況下,也接受傳送的資料。 傳送的資料通常會像資料庫或檔案一樣寫入資料存放區,以便儲存。

PUT

PUT要求方法類似於POST,因為它會傳送資料,但如果要傳送的資料已經存在於端點,PUT會取代現有資料以更新現有資料。 POST不會更新,而只是傳送,因此多個POST請求可以建立已傳送資料的多筆記錄,而非更新任何現有記錄。

PATCH

PATCH要求方法用於傳送可更新部分現有記錄的資料,例如當我們透過更新帳戶設定檔來變更地址時。 透過POST要求,可以建立額外的設定檔,透過PUT,可以取代現有的設定檔,但透過PATCH方法,我們只會更新現有記錄的相關部分,例如地址。

DELETE

DELETE要求方法會移除要求中指定的資源,就像我們按一下連結以完全刪除帳戶設定檔一樣。

還有其他幾個方法,但以下是使用API時最常見的方法清單。

請求範例

現在您已瞭解API的基本術語、概念和步驟,接下來可檢視實際的API要求範例。

瀏覽器範例中的頁面具有URL https://business.adobe.com/products/experience-platform/adobe-experience-platform.html。 按一下Adobe Experience Platform連結時,瀏覽器會針對此頁面發出GET要求。 由於我們有瀏覽器來為我們工作,因此我們只需按一下,但如果程式設計師希望該請求在軟體應用程式中發生,他們必須提供API請求的所有必要詳細資訊,才能成功履行。

以下為程式碼中的可能外觀:

fetch(
  "https://business.adobe.com/products/experience-platform/adobe-experience-platform.html",
  {
    headers: {
      accept:
        "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
      "accept-language": "en-US,en;q=0.9",
      "sec-ch-ua":
        '" Not A;Brand";v="99", "Chromium";v="101", "Microsoft Edge";v="101"',
      "sec-fetch-dest": "document",
      "sec-fetch-mode": "navigate",
      "sec-fetch-site": "none",
      "sec-fetch-user": "?1",
      "upgrade-insecure-requests": "1",
    },
    referrerPolicy: "strict-origin-when-cross-origin",
    body: null,
    method: "GET",
    mode: "cors",
    credentials: "include",
  }
);

在上面的程式碼中,您可以看到瀏覽器正在要求的URL,而在底部附近是method: "GET"要求方法。 其他幾行程式碼也是請求的一部分,但超出了本文章的範圍。

*[API]:應用程式設計介面
*[URL]:統一資源定位器
*[HTTP]: HyperText傳輸通訊協定
*[DNS]:網域名稱系統

9cc2b5f3-7a2d-451f-950c-f8f7136b6390