什麼是 API?
API 是使用一組定義和協定讓兩個軟體元件彼此通訊的機制。舉例來說,氣象局的軟體系統包含有每日的天氣資料。您手機中的天氣應用程式會透過 API 與此系統「交談」並且在您的手機顯示每日天氣的最新消息。
API 代表什麼意思?
API 代表應用程式開發介面。在 API 的內容中,應用程式一詞指的是具有不同功能的任何軟體。可以將介面看作是兩個應用程式之間的服務合約。這份合約定義了兩者如何使用要求與回應彼此進行通訊。它們的 API 文件包含有關開發人員如何構建這些要求與回應的資訊。
API 如何運作?
API 架構通常會藉由用戶端和伺服器來說明。傳送要求的應用程式稱為用戶端,傳送回應的應用程式則稱為伺服器。因此在天氣的例子當中,氣象局的天氣資料庫是伺服器,行動應用程式是用戶端。
API 有四種不同方式可以運作,具體取決於它們建立的時機以及原因為何。
SOAP API
這些 API 使用簡單物件存取協定 (Simple Object Access Protocol)。用戶端和伺服器使用 XML 交換訊息。這是過去較為常用,但是較不具有彈性的 API。
RPC API
這些 API 稱為遠端程序呼叫 (Remote Procedure Call)。用戶端在伺服器上完成功能 (或程序),伺服器則將輸出傳回用戶端。
WebSocket API
WebSocket API 是使用 JSON 物件傳遞資料的另一個現代 Web API 開發。WebSocket API 可支援用戶端應用程式以及伺服器之間的雙向通訊。伺服器可將回呼訊息傳送至連接的用戶端,使得它與 REST API 更有效率。
REST API
這是現今在 Web 上可以找到最常用以及最彈性的 API。用戶端傳送要求至伺服器作為資料。伺服器使用此用戶端輸入來啟動內部功能,並且將輸出資料傳回用戶端。讓我們在下面更詳細地看看 REST API。
什麼是 REST API?
REST 代表表現層狀態轉換 (Representational State Transfer)。REST 定義了例如 GET、PUT、DELETE 的一組功能,用戶端可以利用它們來存取伺服器資料。用戶端和伺服器使用 HTTP 交換資料。
REST API 的主要功能為無狀態。無狀態的意思是伺服器在要求之間並不會儲存用戶端資料。用戶端對於伺服器的要求類似於您在瀏覽器中輸入以造訪網站的 URL。來自伺服器的回應為普通資料,沒有典型的 Web 圖形呈現。
什麼是 Web API?
Web API 或 Web Service API 是網頁伺服器與網頁瀏覽器之間的應用程式處理介面。所有 Web 服務皆為 API,但是並非所有 API 都是 Web 服務。REST API 是一種 Web API 的特殊類型,會使用上述的標準結構樣式。
存在有關於 API 的不同術語 (例如 Java API 或服務 API) 的原因是,就歷史而言,API 的建立時間要在全球資訊網 (world wide web) 之前。現代的 Web API 是 REST API,而這個術語可以交互使用。
什麼是 API 整合?
REST API 有哪些優點?
REST API 提供四個主要優點:
1.整合
2.創新
3.擴展
4.易於維護
API 有哪些不同類型?
API 會根據其架構以及使用範圍加以分類。我們已經探究過 API 架構的主要類型,那麼現在讓我們來看看使用範圍。
私有 API
公有 API
合作夥伴 API
複合 API
API 端點是什麼,以及它為什麼很重要?
API 端點是 API 通訊系統中最終的接觸點。這些包括伺服器 URL、服務以及其他特定數位地點,相關資訊則是透過此處在系統間傳送與接收。API 端點對於企業而言至關重要,主要原因有兩個:
1.安全
2.效能
如何確保 REST API 安全?
必須透過適當身分驗證與監控確保所有 API 的安全。保護 REST API 的兩個主要方法包括:
1.身分驗證字符
2.API 金鑰
如何建立 API?
需要進行盡職調查和相關努力以建置其他開發人員會想要使用並且信賴的 API。以下是高品質 API 設計所需的五個步驟:
1.規劃 API
2.建置 API
3.測試 API
4.記錄 API
5.販售 API
什麼是 API 測試?
API 測試策略類似於其他軟體測試方法。主要焦點在於驗證伺服器回應。API 測試包括:
- 向 API 端點提出多項要求以進行效能測試。
- 編輯單元測試以檢查商務邏輯以及功能正確性。
- 透過模擬系統攻擊進行安全測試。
如何編寫 API 文件?
編寫全方位的完整 API 文件是 API 管理流程的一部分。API 文件可以使用工具自動產生或是手動編寫。部分最佳實務包括:
- 以簡單、易讀的英文編寫說明。使用工具產生的文件可能會變得冗長並且需要編輯。
- 使用程式碼範例以說明功能。
- 維護文件,使其具有準確性和最新狀態。
- 針對初學者的編寫風格
- 涵蓋 API 可以為使用者解決的所有問題。
如何使用 API?
實施新的 API 的步驟包括:
- 獲得 API 金鑰。透過 API 提供者建立驗證帳戶即可完成上述動作。
- 設定 HTTP API 用戶端。此工具可允許您使用收到的 API 金鑰輕鬆地建構 API 要求。
- 如果您還沒有 API 用戶端,可以參考 API 文件,嘗試在瀏覽器中自行構建要求。
- 一旦您熟悉新的 API 語法之後,即可開始在您的程式碼中使用。
哪裡可以找到新的 API?
可以在 API Marketplace 以及 API 目錄中找到新的 Web API。API Marketplace 是開放式平台,任何人都可以將 API 列出進行販售。API 目錄是由目錄擁有者所管理的控管儲存庫。Expert API 設計者可以先將新的 API 進行評估與測試,然後再將它加入自己的目錄中。
部分熱門的 API 網站包括:
- Rapid API – 全球最大的 API 市集,擁有超過 10,000 個公有 API 以及 1 百萬位活躍的開發人員。RapidAPI 能夠允許使用者在承諾購買之前直接在平台上測試 API。
- 公有 API – 該平台將遠端 API 分成 40 種合適類別,使其更方便瀏覽並且找到符合自己需要的適當 API。
- APIForThat 和 APIList – 這兩個網站都有一份超過 500 個 Web API 的清單,以及有關如何使用的深入介紹資訊。
什麼是 API Gateway?
API Gateway 是一種 API 管理工具,適用於使用廣泛後端服務的企業版用戶端。一般而言,API Gateway 是處理例如使用者身分驗證、統計數字以及費率管理等適用於所有 API 呼叫的一般工作。
Amazon API Gateway 是一種全受管服務,可讓開發人員輕鬆地建立、發佈、維護、監控和保護任何規模的 API。它負責處理有關接受和處理數千個並行 API 呼叫的所有工作,包括流量管理、CORS 支援、授權和存取控制、調節、監控和 API 版本管理。
什麼是 GraphQL?
GraphQL 是專門為 API 所開發的查詢語言。它優先為用戶端提供他們要求的資料,此外不會提供其他內容。它的設計旨在讓 API 具有快速、彈性與適合開發人員的特性。作為 REST 的替代,GraphQL 為前端開發人員提供使用單一 GraphQL 端點查詢多個資料庫、微型服務和 API 的能力。 組織選擇使用 GraphQL 建置 API 的原因在於它可協助組織更快速地開發應用程式。
AWS AppSync 是一種全受管服務,透過處理安全連線至 AWS DynamoDB、AWS Lambda 等資料來源的繁重工作,來輕鬆開發 GraphQL API。AWS AppSync 可將 WebSocket 上的即時資料更新推送至數以百萬計的用戶端。對於行動和 Web 應用程式,AppSync 也可在裝置離線時提供本機資料存取。部署後,AWS AppSync 可自動擴展和縮減 GraphQL API 執行引擎,以滿足 API 請求量。
如何獲得 Amazon API 服務?
應用程式開發介面管理是現代軟體開發中極為重要的一部分。對於內部與外部使用者而言,API 基礎設施 (包括工具、閘道以及微服務架構) 是值得投資的。
Amazon API Gateway 附帶有完善功能,可同時而且有效地管理多個 API。在 AWS Portal 完成註冊即可免費進行最多一百萬次 API 呼叫。
AWS AppSync 透過內建高可用性無伺服器基礎設施提供全受管 GraphQL API 設定、管理及維護。您只需按實際使用量付費,沒有最低費用或限制服務用量。若要開始使用,請登入 AWS AppSync 主控台。