API,WEB API

APIweb

應用程序接口(API)是以編程語言提供的結構,容許開發人員更容易地建立複雜的功能。它們抽象出更復雜的代碼,並提供一些簡單的語法來使用。編程

來看一個現實世界中的例子:想一想您的房子、公寓或其餘住宅的電力供應,若是您想在您的房子裏使用一個設備,您只需把它插入到一個插座中;您並不會直接把它鏈接到電源上 - 這樣作效率會很是低,並且若是您不是電工,這麼作將是困難和危險的。canvas

 

一樣,好比說,編程來顯示一些3D圖形,使用以更高級語言編寫的API(例如JavaScript或Python)將會比直接編寫直接控制計算機的GPU或其餘圖形功能的低級代碼(好比C或C++)來執行操做要容易得多。api

 

客戶端JavaScript中的API

客戶端JavaScript中有不少可用的API — 他們自己並非JavaScript語言的一部分,卻創建在JavaScript語言核心的頂部,爲使用JavaScript代碼提供額外的超強能力。他們一般分爲兩類:瀏覽器

  • 瀏覽器API內置於Web瀏覽器中,能從瀏覽器和電腦周邊環境中提取數據,並用來作有用的複雜的事情 。例如Geolocation API提供了一些簡單的JavaScript結構以得到位置數據,所以您能夠在Google地圖上標示您的位置。在後臺,瀏覽器確實使用一些複雜的低級代碼(例如C++)與設備的GPS硬件(或能夠決定位置數據的任何設施)通訊來獲取位置數據並把這些數據返回給您的代碼中使用瀏覽器環境;可是,這種複雜性經過API抽象出來,於是與您無關。
  • 第三方API缺省狀況下不會內置於瀏覽器中,一般必須在Web中的某個地方獲取代碼和信息。例如Twitter API 使您能作一些顯示最新推文這樣的事情,它提供一系列特殊的結構,能夠用來請求Twitter服務並返回特殊的信息。

API能夠作什麼?

常見瀏覽器API

  • 操做文檔的API內置於瀏覽器中。最明顯的例子是DOM(文檔對象模型)API,它容許您操做HTML和CSS — 建立、移除以及修改HTML,動態地將新樣式應用到您的頁面,等等。每當您看到一個彈出窗口出如今一個頁面上,或者顯示一些新的內容時,這都是DOM的行爲。 您能夠在在Manipulating documents中找到關於這些類型的API的更多信息。
  • 從服務器獲取數據的API 用於更新網頁的一小部分是至關好用的。這個看似很小的細節能對網站的性能和行爲產生巨大的影響 — 若是您只是更新一個股票列表或者一些可用的新故事而不須要從服務器從新加載整個頁面將使網站或應用程序感受更加敏感和「活潑」。使這成爲可能的API包括XMLHttpRequestFetch API。您也可能會遇到描述這種技術的術語Ajax。您能夠在Fetching data from the server找到關於相似的API的更多信息。
  • 用於繪製和操做圖形的API目前已被瀏覽器普遍支持 — 最流行的是容許您以編程方式更新包含在HTML <canvas> 元素中的像素數據以建立2D和3D場景的CanvasWebGL。例如,您能夠繪製矩形或圓形等形狀,將圖像導入到畫布上,而後使用Canvas API對其應用濾鏡(如棕褐色濾鏡或灰度濾鏡),或使用WebGL建立具備光照和紋理的複雜3D場景。這些API常常與用於建立動畫循環的API(例如window.requestAnimationFrame())和其餘API一塊兒不斷更新諸如動畫和遊戲之類的場景。
  • 音頻和視頻API例如HTMLMediaElementWeb Audio APIWebRTC容許您使用多媒體來作一些很是有趣的事情,好比建立用於播放音頻和視頻的自定義UI控件,顯示字幕字幕和您的視頻,從網絡攝像機抓取視頻,經過畫布操縱(見上),或在網絡會議中顯示在別人的電腦上,或者添加效果到音軌(如增益,失真,平移等) 。
  • 設備API基本上是以對網絡應用程序有用的方式操做和檢索現代設備硬件中的數據的API。咱們已經討論過訪問設備位置數據的地理定位API,所以您能夠在地圖上標註您的位置。其餘示例還包括經過系統通知(參見Notifications API)或振動硬件(參見Vibration API)告訴用戶Web應用程序有用的更新可用。
  • 客戶端存儲API在Web瀏覽器中的使用變得愈來愈廣泛 - 若是您想建立一個應用程序來保存頁面加載之間的狀態,甚至讓設備在處於脫機狀態時可用,那麼在客戶端存儲數據將會是很是有用的。例如使用Web Storage API的簡單的鍵 - 值存儲以及使用IndexedDB API的更復雜的表格數據存儲。

常見第三方API

第三方API種類繁多; 下列是一些比較流行的你可能早晚會用到的第三方API:服務器

  • The Twitter API, 容許您在您的網站上展現您最近的推文等。
  • The Google Maps API 容許你在網頁上對地圖進行不少操做(這頗有趣,它也是Google地圖的驅動器)。如今它是一整套完整的,可以勝任普遍任務的API。其能力已經被Google Maps API Picker見證。
  • The Facebook suite of API 容許你將不少Facebook生態系統中的功能應用到你的app,使之受益,好比說它提供了經過Facebook帳戶登陸、接受應用內支付、推送有針對性的廣告活動等功能。
  • The YouTube API, 容許你將Youtube上的視頻嵌入到網站中去,同時提供搜索Youtube,建立播放列表等衆多功能。
  • The Twilio API, 其爲您的app提供了針對語音通話和視頻聊天的框架,以及從您的app發送短信息或多媒體信息等諸多功能。

 

WEB API網絡

什麼是Web APIapp

官方解釋:
  ASP.NET Web API is a framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices. ASP.NET Web API is an ideal platform for building RESTful applications on the .NET Framework. 框架

在圖上能夠看出來,Web API 與SignalR一塊兒同爲構建Service的框架。Web API負責構建http常規服務,而SingalR主要負責的是構建實時服務,例如股票,聊天室,在線遊戲等實時性要求比較高的服務。編程語言

爲何要用Web API

Web API最重要的是能夠構建面向各類客戶端的服務。另外與WCF REST Service不一樣在於,Web API利用Http協議的各個方面來表達服務(例如 URI/request response header/caching/versioning/content format),所以就省掉不少配置。

功能簡介
1.支持基於Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操做,經過不一樣的http動做表達不一樣的含義,這樣就不須要暴露多個API來支持這些基本操做。

2.請求的回覆經過Http Status Code表達不一樣含義,而且客戶端能夠經過Accept header來與服務器協商格式,例如你但願服務器返回JSON格式仍是XML格式。

3.請求的回覆格式支持 JSON,XML,而且能夠擴展添加其餘格式。

4.原生支持OData。

5.支持Self-host或者IIS host。

6.支持大多數MVC功能,例如Routing/Controller/Action Result/Filter/Model Builder/IOC Container/Dependency Injection。

什麼地方須要用Web API
當你遇到如下這些狀況的時候,就能夠考慮使用Web API了。

1.須要Web Service可是不須要SOAP
2.須要在已有的WCF服務基礎上創建non-soap-based http服務
3.只想發佈一些簡單的Http服務,不想使用相對複雜的WCF配置
4.發佈的服務可能會被帶寬受限的設備訪問
5.但願使用開源框架,關鍵時候能夠本身調試或者自定義一下框架


Web API 與MVC的區別1.MVC主要用來構建網站,既關心數據也關心頁面展現,而Web API只關注數據2.Web API支持格式協商,客戶端能夠經過Accept header通知服務器指望的格式3.Web API支持Self Host,MVC目前不支持4.Web API經過不一樣的http verb表達不一樣的動做(CRUD),MVC則經過Action名字表達動做5.Web API內建於ASP.NET System.Web.Http命名空間下,MVC位於System.Web.Mvc命名空間下,所以model binding/filter/routing等功能有所不一樣 最後,6.Web API很是適合構建移動客戶端服務參考:https://blog.csdn.net/weixin_38174062/article/details/80829912   https://blog.csdn.net/aiming66/article/details/79952670

相關文章
相關標籤/搜索