API 介紹 #私藏項目實操分享#

      網友投稿 1000 2025-03-31

      如果你是一個初學者,甚至一想到API都有些害怕。那是一種什么樣的黑暗魔法?以及為什么每個人都向API開發者支付數十萬的費用。難道他們喝血,在月光下圍著羊群獻祭嗎?

      應用程序接口(API,Application Programming Interface)是基于編程語言構建的結構,使開發人員更容易地創建復雜的功能。它們抽象了復雜的代碼,并提供一些簡單的接口規則直接使用。

      來看一個現實中的例子:想想您的房子、公寓或其他住宅的供電方式,如果您想在您的房子里用電,只要把電器的插頭插入插座就可以,而不是直接把它連接到電線上——這樣做非常低效,而且對于不是電工的人會是困難和危險的。

      圖片來自: Overloaded plug socket ?提供者:? The Clear Communication People 于Flickr

      云原生應用開發是提高開發速度的一個明確辦法,依賴于通過 API 連接微服務應用架構。

      什么是API?

      API 是 Application Programming Interface的縮寫,但沒有人這樣稱呼它,就像沒有人稱USB 為 Universal Serial Bridge(通用串行橋)。API 的技術含義是,它是一套用于構建、通信和集成應用軟件的定義和協議,因此稱為 "接口"。

      但撇開技術術語不談,API 只是一種與應用程序互動的方式,其內部工作原理對外部用戶是不可見的。API 允許外部用戶(客戶)從應用程序或服務器 "請求 "(request)一些東西,并獲得相應的 "響應"(response)。

      事實上,你已經使用了相當于現實世界中的 API 。例如,乘坐老式的出租車。要想坐上出租車,你需要:

      "Request" :要求出租車來接你,并附上你的聯系方式和位置信息

      "Response":在對你的請求的 "回應 "中,你會得到出租車的詳細信息,并且出租車會來接你。

      你再次 "要求 "( "Request" )出租車司機把你帶到一個特定的地點。

      在 "回應 "("Response")中,出租車司機將你送到你想要的地方。

      現在,你不需要知道如何操作汽車,就能從一個地方到另一個地方,出租車司機就像一個API 。你可能對汽車的操作一無所知,但你可以與 API 層,也就是司機,進行互動,并導航到你想要的結果。

      另一種看待 API 的方式是,它是一個神奇的盒子,以一種非常具體的格式接受輸入,并以一種非常具體的格式給出輸出。在應用程序開發中,這種輸入和輸出(I/O)的 "標準化 "是很有用的,它使開發者很容易與他們不控制的系統進行交互。

      API 的類型

      如果你聽說過 API 這個詞,有可能它是用來指一種非常特殊的 API 類型,叫做Web API。然而,一般來說,根據 API 的用途,API 一詞可能有其他含義。

      根據用途,API 可以大致分為以下四類:

      Web APIs 用于在服務器和客戶端之間通過互聯網進行通信。Web API 顧名思義是一種非常特殊的 API 類型,用于在互聯網上互動和操作信息或資源。

      Remote APIs 定義了在不同機器上運行的應用程序的交互標準。例如,將數據庫連接到程序的 JDBC 連接 API 。

      API 介紹 #私藏項目實操分享#

      庫和框架作為軟件的接口,也是 API 的一種。

      操作系統可以為應用程序指定 API ,以便與設備互動。例如,帶有攝像頭的安卓設備需要一個操作系統 API ,以使任何應用程序能夠控制攝像頭。

      遠程 API 和 Web API 的區別

      遠程 API 旨在通過通信網絡進行互動。這里的"遠程"是指 API 操控的資源不在提出請求的計算機上。由于互聯網是應用最廣泛的通信網絡,所以大多數 API 都是基于 Web 標準來設計的。并非所有的遠程 API 都是 Web API,但可以認為 Web API 都是遠程 API。

      Web API 通常會使用 HTTP 來傳輸請求消息,并提供響應消息的結構定義。這些響應消息通常都會以 XML 或 JSON 文件的形式來提供。XML 和 JSON 都是首選格式,因為它們會以易于其他應用操縱的方式來呈現數據。

      什么是 Web API?

      Web API用于服務器和客戶端之間通過互聯網或任何網絡進行通信。通常,Web API使用HTTP(超文本傳輸協議,HyperText Transfer Protocol)請求方法,也被稱為 HTTP 動詞,與服務器進行通信。

      HTTP標準(RFCs 7231和RFC 5789,但這并不重要)規定了一套 "請求方法",表明要執行的行動。

      這些HTTP請求方法是:

      GET:從一個端點 "獲取 "指定的資源。這導致了服務器的響應,而服務器的狀態沒有任何變化。

      POST:向一個終端發送一些數據,通常會產生一個動作,反過來改變服務器的狀態。

      PUT : 替換服務器上的一些數據。與POST類似,但不同的是,PUT請求將始終產生相同的結果。

      DELETE : DELETE方法從服務器上刪除指定的資源。

      HEAD : HEAD方法要求一個像GET請求那樣的響應,但只有狀態行和頭部分。

      CONNECT : CONNECT方法建立一個隧道到目標資源識別的服務器。

      OPTIONS : OPTIONS方法用于描述目標資源的通信選項。

      TRACE : TRACE方法沿著通往目標資源的路徑進行消息回環測試。

      PATCH : PATCH方法用于對一個資源進行部分修改。

      API 設計簡化

      在 API 逐步發展成為當前隨處可見的 Web API 的過程中,人們對它進行了一些改進,簡化了設計并改進了它的實施成效。

      REST 與 SOAP 的區別

      隨著 Web API 的不斷普及,相應的協議規范也隨之產生了,從而推動了信息交換的標準化:簡單對象訪問協議,簡稱 SOAP。使用 SOAP 設計的 API 會使用 XML 格式來收發消息,并通過 HTTP 或 SMTP 來接收請求。使用 SOAP 時,在不同環境中運行的應用或使用不同語言編寫的應用能夠更加輕松地共享信息。

      相關的規范還有一個,即:表述性狀態傳遞(REST)。遵循 REST 架構約束的 Web API 被稱為 RESTful API。REST 與 SOAP 有著根本區別:SOAP 是一種協議,而 REST 是一種架構模式。這意味著 RESTful Web API 沒有官方標準。正如 Roy Fielding 在論文 "Architectural Styles and the Design of Network-based Software Architectures"(架構模式以及基于網絡的軟件架構的設計) 中定義的那樣,只要 API 符合 RESTful 系統的 6 個導向性約束,就算作 RESTful API:

      客戶端/服務器架構:REST 架構由客戶端、服務器和資源構成,通過 HTTP 來處理請求。

      無狀態:請求所經過的服務器上不會存儲任何客戶端內容。與會話狀態相關的信息會存儲在客戶端上。

      可緩存性:通過緩存,可免去客戶端與服務器之間的某些交互。

      分層系統:客戶機與服務器之間的交互可以通過額外的層來進行調解。這些層可以提供額外的功能,如負載均衡、共享緩存或安全防護。

      按需代碼(可選):服務器可通過傳輸可執行代碼來擴展客戶端的功能。

      統一接口:這項約束是 RESTful API 的設計核心,共涵蓋 4 個層面:

      識別請求中的資源:請求中的資源會被識別,并與返回給客戶端的表示內容分離開來。

      通過不同的表示內容來操縱資源:客戶端會收到表示不同資源的文件。這些表示內容必須提供足夠的信息,以便執行修改或刪除操作。

      自描述消息:返回給客戶端的每個消息都包含充足的信息,用于指明客戶端應該如何處理所收到的信息。

      將超媒體作為應用狀態的引擎:在訪問某個資源后,REST 客戶端應該能夠通過超鏈接來發現當前可用的所有其他操作。

      雖然看似有很多約束需要遵循,但是這些約束遵循起來要比遵循規定的協議容易得多。因此,RESTful API 現在變得比 SOAP 更為普及。

      近年來, OpenAPI ?規范已成為定義? REST API ?的通用標準。OpenAPI 為開發人員提供了一種與語言無關的方式來構建 REST API 接口,從而最大程度減少不確定的因素,讓用戶安心工作。

      面向服務的架構(SOA)和微服務架構

      最常使用遠程 API 的 2 種架構方案分別是: 面向服務的架構(SOA) 和微服務架構 (點擊了解微服務的優勢) 架構。在這 2 種方案中,SOA 的歷史更為久遠一些。最初,它是在單體式應用的基礎上經過改進而形成的。雖然單個單體式應用也可以完成各種操作,但通過某種集成模式(如企業服務總線(ESB))在不同應用間實現松散耦合后,即可獲得某些功能。

      從大多數層面來看,SOA 都要比單體式架構更簡單;但是,如果無法明確理解各種組件交互,SOA 也可能會進一步加劇整個環境的復雜性。這種復雜性的加劇會重新引發 SOA 想要解決的某些問題。

      對于專用松散耦合服務的使用,微服務架構與 SOA 模式類似。但是,微服務架構會對傳統架構進行進一步細分。在微服務架構中,服務會采用通用消息傳遞框架,如 RESTful API。它們會使用 RESTful API 來實現相互通信,且無需執行繁瑣的數據轉換處理或使用其他的集成層。使用 RESTful API 可以加速新功能和新更新的交付;甚至還可以說,是這類 API 促進了這種速度的提升。該架構中的每一個服務都呈離散狀態。一個服務可以被取代、增強或丟棄,而不會影響架構中的任何其他服務。這種輕量級架構有助于優化分布式資源或云資源,而且能夠支持個別服務的動態擴展。

      -? 一文帶你看懂API是什么?

      - Web API 簡介

      API HTTP

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Excel中使用篩選功能的簡單步驟
      下一篇:excel表如何間隔篩查(excel怎么間隔篩選)
      相關文章
      456亚洲人成在线播放网站| 亚洲欧好州第一的日产suv| 色欲色欲天天天www亚洲伊| 亚洲jjzzjjzz在线观看| 亚洲天堂一区二区三区| 亚洲嫩草影院久久精品| 亚洲AV无码一区二区乱子伦 | 亚洲毛片基地4455ww| 亚洲男人天堂2017| 亚洲AV无码国产精品麻豆天美| 国产中文在线亚洲精品官网| 亚洲免费视频一区二区三区| 日韩色日韩视频亚洲网站| 免费亚洲视频在线观看| 亚洲av日韩片在线观看| 在线a亚洲v天堂网2018| 亚洲国产精品自产在线播放| 亚洲人成人网站在线观看| 国产日产亚洲系列最新| 亚洲色精品vr一区二区三区| 亚洲国产精品乱码一区二区| 久久精品亚洲中文字幕无码网站| 久久精品亚洲中文字幕无码网站| 亚洲A∨无码一区二区三区| 亚洲人成在线电影| 亚洲男女一区二区三区| 亚洲二区在线视频| 亚洲人成色4444在线观看| 亚洲av乱码中文一区二区三区| 在线观看亚洲精品专区| 中文字幕亚洲日韩无线码| 国产精品亚洲片在线观看不卡| 亚洲AV无码成人精品区蜜桃| 久久91亚洲精品中文字幕| 久久av无码专区亚洲av桃花岛| 亚洲制服丝袜一区二区三区| 亚洲人成图片网站| 精品久久久久亚洲| 中文字幕人成人乱码亚洲电影| 亚洲成AV人片在| 亚洲激情视频网站|