淺談接口
2019年12月23日23:40:57 (記錄個人學習過程)html
1.爲何我會接觸這個?
項目組組長推薦:咱們先自行學習一下接口(HTTP接口)前端
2.提到接口,個人第一印象
- 陌生
- 熟悉又陌生
- 須要開始接觸,瞭解學習
3.自我描述:接口是什麼?
1.舉個例子來講:前臺和後臺進行數據交互(先後端分離架構),前臺開發前臺的,後臺開發後臺的,可是前臺開發的是使用的模擬數據,又前臺定義好數據接口(json格式),將接口定義好,寫出接口文檔,交接給後臺程序員,後臺程序員處理數據以後將數據轉換成接口描述的格式,來傳遞給前臺使用。我以前用過的layUI前端框架,在作數據渲染的時候,本身定義一個json格式的文件就把數據模擬出來了。後臺只須要經過springmvc返回值的時候返回定義好的json格式的數據就能夠了,這就是我印象中的接口格式。程序員
2.A系統訪問B系統,好比淘寶買東西,最後調用的是支付寶付款,這就是調用了支付寶的支付接口。博客什麼的調用了天氣的接口,可以直接快速使用,這些也都是接口。spring
3.對於咱們公司的系統來講,咱們開發的是核心系統,核心業務流程,可是呢外圍又有不少的子系統是和咱們的核心繫統進行業務關聯的,如CMS系統,財務系統,等等財務系統的數據傳輸給核心系統的時候,也是須要定義好肯定的接口來完成數據的傳遞。這些也是接口json
4.舉例很容易,可是接口究竟是什麼呢?對於一個開發人員來講,對於接口這個概念,咱們須要瞭解到什麼程度?怎麼去使用接口完成開發工做呢?後端
5.etc....瀏覽器
官方:那麼,接口究竟是什麼?
咱們就須要查閱一些資料了前端框架
在查閱資料的過程當中,我整理了一個思惟導圖
HTTP,TCP,JSON,這是咱們學習HTTP接口的三發銀彈服務器
通過個人瞭解:學習HTTP接口,就是在學HTTP協議,對於這個協議,相必你們都不陌生。張嘴閉嘴就是POST,Get請求,狀態碼:2--,3--,4--,5-- 咱們都常常見也都背誦的很熟。有系統的查閱過文檔嗎?哈哈。微信
https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
HTTP是什麼?
超文本傳輸協議?在哪裏見過?瀏覽器訪問網站的時候,域名前面默認的都是HTTP吧,那麼HTTP是什麼呢?
Http協議是創建在TCP協議基礎之上的,當瀏覽器須要從服務器獲取網頁數據的時候,會發出一次Http請求。Http會經過TCP創建起一個到服務器的鏈接通道,當本次請求須要的數據完畢後,Http會當即將TCP鏈接斷開,這個過程是很短的。因此Http鏈接是一種短鏈接,是一種無狀態的鏈接。 HTTP協議的主要特色可歸納以下: 1.支持客戶/服務器模式。 2.簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法經常使用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯繫的類型不一樣。因爲HTTP協議簡單,使得HTTP服務器的程序規模小,於是通訊速度很快。 3.靈活:HTTP容許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。 4.無鏈接:無鏈接的含義是限制每次鏈接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答後,即斷開鏈接。採用這種方式能夠節省傳輸時間。 5.無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺乏狀態意味着若是後續處理須要前面的信息,則它必須重傳,這樣可能致使每次鏈接傳送的數據量增大。另外一方面,在服務器不須要先前信息時它的應答就較快。
這個HTTP不是咱們今天關注的重點,這些基礎知識還請自行補充。
TCP是什麼?
看到上面說HTTP是基於TCP協議基礎之上的,那麼TCP是什麼呢?提到TCP,你們想到的仍是三次握手?反正我是這樣。。就知道三次握手,缺不知道爲了什麼握手了,慚愧慚愧。
傳輸控制協議(TCP,Transmission Control Protocol)是一種面向鏈接的、可靠的、基於字節流的傳輸層通訊協議,由IETF的RFC 793 [1] 定義。 TCP旨在適應支持多網絡應用的分層協議層次結構。 鏈接到不一樣但互連的計算機通訊網絡的主計算機中的成對進程之間依靠TCP提供可靠的通訊服務。TCP假設它能夠從較低級別的協議得到簡單的,可能不可靠的數據報服務。 原則上,TCP應該可以在從硬線鏈接到分組交換或電路交換網絡的各類通訊系統之上操做。
好吧,內容比較官方,引用自:百度百科,其餘參考資料:
https://en.wikipedia.org/wiki/TCP https://developer.mozilla.org/en-US/search?q=TCP
JSON是什麼?
JSON是JavaScript Object Notation的縮寫,它是一種數據交換格式。
在JSON出現以前,你們一直用XML來傳遞數據。由於XML是一種純文本格式,因此它適合在網絡上交換數據。XML自己不算複雜,可是,加上DTD、XSD、XPath、XSLT等一大堆複雜的規範之後,任何正常的軟件開發人員碰到XML都會感受頭大了,最後你們發現,即便你努力鑽研幾個月,也未必搞得清楚XML的規範。終於,在2002年的一天,道格拉斯·克羅克福特(DouglasCrockford)同窗爲了拯救深陷水深火熱同時又被某幾個巨型軟件企業長期愚弄的軟件工程師,發明了JSON這種超輕量級的數據交換格式。道格拉斯同窗長期擔任雅虎的高級架構師,天然鍾情於JavaScript。他設計的JSON其實是JavaScript的一個子集。
在JSON中,一共就這麼幾種數據類型:
- number:和JavaScript的number徹底一致;
- boolean:就是JavaScript的true或false;
- string:就是JavaScript的string;
- null:就是JavaScript的null;
- array:就是JavaScript的Array表示方式——[];
- object:就是JavaScript的{ ... }表示方式。
- 以及上面的任意組合。
而且,JSON還定死了字符集必須是UTF-8,表示多語言就沒有問題了。爲了統一解析,JSON的字符串規定必須用雙引號"",Object的鍵也必須用雙引號""。
{ "name": "小明", "age": 14, "gender": true, "height": 1.65, "grade": null, "middle-school": "\"W3C\" Middle School", "skills": [ "JavaScript", "Java", "Python", "Lisp" ] }
接口是什麼呢?
In computing, an interface is a shared boundary across which two or more separate components of a computer system exchange information. The exchange can be between software, computer hardware, peripheral devices, humans, and combinations of these.[1] Some computer hardware devices, such as a touchscreen, can both send and receive data through the interface, while others such as a mouse or microphone may only provide an interface to send data to a given system.[2]
在計算中,接口是一個共享邊界,計算機系統的兩個或多個單獨組件在該共享邊界上交換信息。 能夠在軟件,計算機硬件,外圍設備,人員以及這些的組合之間進行交換。[1] 某些計算機硬件設備(例如觸摸屏)能夠經過該接口發送和接收數據,而其餘計算機硬件設備(例如鼠標或麥克風)可能僅提供將數據發送到給定系統的接口。[2]
參考:wiki https://en.wikipedia.org/wiki/Interface_(computing)
咱們這裏着重介紹的是,HTTP接口。
HTTP接口
仍是沒說什麼是HTTP接口?
不要管那些花裏胡哨的,本質就是一個接口,做用就是基於http協議進行遠程通訊。
接口和接口文檔長什麼樣呢?
參考:https://blog.csdn.net/qq_41961113/article/details/80347341 還能夠參考阿里雲啊,網易雲啊,騰訊啊,微信啊等提供的官網API接口文檔。
寫完這些,我仍是比較矇蔽的,仍是隻是其然,不知其因此然,爲何呢,由於啊,我尚未在實際開發中用到接口。因此,不去用,你永遠想象不到他能幹什麼。因此說,在學習階段,找幾個實戰案例來學習一下,會對這個東西的應用稍微明確一點。我便蒐集了一下開發案例來供本身參考。
http接口開發與調用案例
參考實戰案例:
- http接口開發與調用案例 https://blog.csdn.net/quwenzhe/article/details/53156030
- http+json 格式的接口開發實踐與思考 http://www.javashuo.com/article/p-uaaoqirn-ho.html
- 短信接口說明書 http://www.inolink.com/connhttp.html
- etc...
http開發過程當中使用到的工具
固然這些工具,是從他們實戰開發的實例中,get到的~
- postman (這個我真的用過。哈哈)
- getman
- 小幺雞
我寫這個,不表明我會了。我也會和個人同事,朋友們一塊兒討論這個知識點,相互學習,相互補充,共同把知識相輔相成的學到本身的腦殼裏。
總結一下:
- HTTP協議
- TCP協議
- JSON
不要管那些花裏胡哨的,本質就是一個接口,做用就是基於http協議進行遠程通訊。
原文出處:https://www.cnblogs.com/bigbaby/p/12089107.html