搞懂 API ,API 分類全知道

圓圓大姐頭發表於2023-05-06

API,即應用程式程式設計介面,是為了方便應用程式之間的資料和功能互動而設計的一些標準方法。API 的分類可以從多個維度進行,我會對 API 的分類維度進行簡單的介紹。

1. 根據使用方式的不同

通常情況下,API 可以分為兩種使用方式:內部 API 和外部 API。
內部 API 是指供企業內部開發人員和應用所使用的 API。當企業需要一些定製化的應用程式或者整合特定的功能時,內部 API 可以提供更好的技術支援,同時也能保證資料的安全性和可靠性。

外部 API 則是供公眾開發者使用的 API,透過提供資料和服務,使得外部的開發者可以構建豐富的應用程式並與當前的生態系統進行協作。越來越多的各類公司都開始向公眾提供自己的 API,示例包括 Facebook、Twitter、Google 等。

2. 根據訪問方式的不同

根據 API 的訪問方式,API 可以分為以下幾種:
a. RESTful API
REST(Representational State Transfer)是一種基於 HTTP 協議的 Web 應用程式架構標準。RESTful API 遵循 RESTful 架構的原則,通常由資源路徑和請求方法組成,以達到可讀性高、靈活性好的目的。
b. SOAP API
SOAP(Simple Object Access Protocol)是一種基於 XML 編碼的遠端呼叫協議,比較複雜而且處理時間和網路資源使用率高。雖然 SOAP 技術已經逐漸淡出市場,但在某些特殊場景下仍然會有所應用。
c. GraphQL API
GraphQL 是由 Facebook 公司開源的一種資料查詢語言和 API 執行引擎,可以呈現出 schema 來表達整個資料的結構,併為前端工程師提供自由定義獲取所需屬性、程式碼重用等人性化的特色。
d. gRPC API
gRPC 可以理解為 Google Remote Procedure Call,是 Google 最新開源的跨語言 RPC 框架。藉助基於 HTTP/2 的二進位制傳輸協議,gRPC 提供了比 JSON 和 RESTful 更快速和更可靠的通訊方式。

3. 根據功能的不同

根據 API 的功能性質,API 可以分為以下幾類:

a. Web API
Web API 一般都針對 Web 應用程式,提供一些標準的介面,例如:W3C DOM 介面、HTTP 介面、WebSocket 介面、Web Worker 介面等。這些 API 幫助瀏覽器取得使用者元素資訊、傳送 AJAX 請求等等。
b. 作業系統 API
作業系統 API(如 Windows API 或 POSIX API)提供了與作業系統軟體互動的方法,允許應用程式查詢及控制硬體裝置或作業系統核心任務等。此類 API 幾乎適用於任何型別的環境。
c. 資料庫 API
資料庫 API 可以使應用程式透過某些 API 實現對一些資料儲存的操作,例如:SQL、NoSQL 等資料庫裡都有相關的 API 呼叫。

在實際使用中,API 支援訪問不同的功能模組,例如資料轉換、資料分析、網路安全、門戶管理、日曆等等,還可以根據不同的需求進行客製化的開發。

總之,在開發過程中,根據實際需求選擇合適的 API 型別是非常重要的,能夠快速、高效地構建需要的應用程式。

如果你日常會用到 api 管理工具的話,不妨看看我目前參與的這個開源專案,Postcat 開源的 API 管理工具,純國產,免費的,主打外掛生態,適合中小團隊以及個人開發者使用,有 API 相關的核心功能。

目前在 Github 上 3k star,如果你覺得這個專案還不錯的話,不妨點個 star 支援一下~

Github:
https://github.com/Postcatlab/postcat

Postcat 核心功能:

  • API 文件管理:視覺化 API 設計,生成 API 文件
  • API 測試:自動生成測試引數,自動生成測試用例,視覺化資料編輯
  • 外掛擴充:眾多外掛擴充套件產品功能,打造屬於你和團隊的 API 開發平臺
  • Mock:根據文件自動生成 Mock,或建立自定義 Mock 滿足複雜場景
  • 團隊協作:既能實現 API 分享也能可以建立雲空間共同協作

Postcat 優勢:

  • 免登入即可測試:省去繁瑣的驗證登入的操作
  • 介面簡潔:沒有冗餘的功能與複雜選項
  • 免費:中小團隊以及個人使用
  • 豐富的外掛:支援資料遷移、主題、API 安全等高達 30 款外掛
  • 國產:能更好的理解國內使用者的需求,與開發團隊溝通無障礙
  • 完善的使用者文件:跟著操作就能快速上手