api聽起來既熟悉又陌生。我經常聽說這個術語,但具體的含義又不是特殊清楚,對這個相當普遍的術語有乙個相當模糊或不正確的理解。從技術上講,api代表應用程式程式設計介面。在某種程度上,大多數大公司已經為他們的客戶或內部使用構建了api。
但是如何用簡單的語言解釋api呢?還有什麼比在開發和商業中使用的更廣泛的含義嗎?首先,讓我們回過頭來看看web本身是如何工作的。
當我想到web時,我想到的是乙個由連線的伺服器組成的大型網路。internet上的每個頁面都儲存在遠端伺服器的某個地方。畢竟,遠端伺服器並不是那麼神秘——它只是遠端定位計算機的一部分,經過優化可以處理請求。從長遠來看,你可以在你的膝上型電腦上啟動乙個伺服器,它可以為整個**提供網路服務(事實上,工程師們在向公眾發布**之前會使用乙個本地伺服器來開發**)。
當你在瀏覽器中輸入www.facebook.com時,乙個請求會傳送到facebook的遠端伺服器。一旦您的瀏覽器接收到響應,它將解釋**並顯示頁面。對於瀏覽器(也稱為客戶機),facebook的伺服器是乙個api。這意味著每次訪問web上的頁面時,都要與某個遠端伺服器的api進行互動。api與遠端伺服器不同——它是伺服器接收請求和傳送響應的部分。
你可能聽說過一些公司將api打包成產品。例如,地下氣象台**對其天氣資料api的訪問權。
示例場景:您的小型企業的**有乙個用於為客戶註冊預約的表單。您希望讓您的客戶能夠自動建立乙個帶有該約會詳細資訊的谷歌日曆事件。api的使用:這個想法是讓你的**的伺服器直接與谷歌的伺服器對話,請求建立乙個事件與給定的細節。然後,您的伺服器將接收谷歌的響應,對其進行處理,並將相關資訊傳送回瀏覽器,例如傳送給使用者的確認訊息。
另外,您的瀏覽器通常可以繞過您的伺服器直接向谷歌的伺服器傳送api請求。這個谷歌日曆的api與其他遠端伺服器的api有何不同?在技術術語中,區別在於請求和響應的格式。要呈現整個web頁面,您的瀏覽器需要html格式的響應,其中包含表示**,而谷歌calendar的api呼叫只返回資料—很可能是json格式。
如果您的**伺服器正在發出api請求,那麼您的**伺服器就是客戶端(類似於您的瀏覽器是客戶端,當您使用它來導航到乙個**)。從使用者的角度來看,api允許他們在不離開**的情況下完成操作。大多數現代**至少使用一些第三方api。
許多問題已經有了第三方解決方案,無論是以庫還是服務的形式。使用現有的解決方案通常更容易、更可靠。開發團隊將他們的應用程式分解成多個通過api互相通訊的伺服器並不少見。為主應用伺服器執行輔助功能的伺服器通常稱為微服務。
總而言之,當乙個公司給客戶提供了乙個api,它只是意味著他們已經建立了一套專用的url返回純資料響應——這意味著反應不會包含這種表象的開銷你期望在乙個**這樣乙個圖形使用者介面。你能用瀏覽器發出這些請求嗎?通常,是的。由於實際的http傳輸是在文字中進行的,所以您的瀏覽器總是會盡其所能來顯示響應。例如,您可以直接使用瀏覽器訪問github的api,甚至不需要訪問令牌。這是您在瀏覽器中訪問github使用者的api路由時得到的json響應
(瀏覽器似乎很好地顯示了json響應。這樣的json響應可以在**中使用。從本文中提取資料很容易。然後你可以對資料做任何你想做的事情。
如何在Mac上合併日曆
mac上是否有用於不同用途的多個日曆?如果要刪除某些不需要的日曆,但仍保留事件或移動它們,則可以在幾秒鐘內合併日曆。macos上的本機日曆應用程式使您可以建立多個日曆,這些日曆通常對於希望將職業和私人生活區分開的人們非常方便。有時人們建立的日曆可能比實際所需的要多,這可能會使您的所有日曆事件變得混亂...
如何在指定桌面上啟動程序
如何在指定桌面上啟動程序,以啟動spyxx為例 handle hdesk0 opendesktop default 0,0,generic all handle hdesk opendesktop another desktop 0,0,generic all if hdesk null else ...
如何在ashx頁面獲取Session值
在一般事務處理頁面,可以輕鬆的得到 request,response物件,從而進行相應的操作,如下 但是要得到 session的值就沒有那麼簡單了。比如你要在ashx得到儲存在session中的登入帳號session useraccount 如果你只是context.session useracco...