自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

數(shù)據(jù)傳輸,數(shù)據(jù)調(diào)用中的那些常用方式

網(wǎng)絡(luò) 通信技術(shù)
在互聯(lián)網(wǎng)和物聯(lián)網(wǎng)高度發(fā)達(dá)的今天,似乎一切都可以連接起來(lái),而彼此連接通訊的方式就是API,而對(duì)于API,有很多種方式進(jìn)行數(shù)據(jù)的傳輸,今天我們就來(lái)說(shuō)一說(shuō)API通信的演變過(guò)程。

在互聯(lián)網(wǎng)和物聯(lián)網(wǎng)高度發(fā)達(dá)的今天,似乎一切都可以連接起來(lái),而彼此連接通訊的方式就是API,而對(duì)于API,有很多種方式進(jìn)行數(shù)據(jù)的傳輸,今天我們就來(lái)說(shuō)一說(shuō)API通信的演變過(guò)程。

[[427409]]

SOAP

它的全稱叫做簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議,它是最早人們用來(lái)進(jìn)行數(shù)據(jù)傳輸?shù)耐ㄓ崊f(xié)議,它通過(guò)xml定義了服務(wù)調(diào)用的參數(shù)和類型,定義了正文格式,定義了響應(yīng)方式, 它可以通過(guò)http協(xié)議進(jìn)行傳輸,也可以通過(guò)smtp協(xié)議或者tcp協(xié)議進(jìn)行傳輸,因?yàn)閤ml的冗長(zhǎng),在消息過(guò)多的時(shí)候,它的傳輸數(shù)據(jù)會(huì)大大增加。

因此,soap這種數(shù)據(jù)傳輸方式已經(jīng)逐漸被歷史舞臺(tái)所淘汰。

JSON

在xml格式冗余數(shù)據(jù)過(guò)多的時(shí)候,人們發(fā)現(xiàn)json數(shù)據(jù)格式可以傳輸更多的信息,并且json被很多編程語(yǔ)言所支持,因此,越來(lái)越多的api采用json數(shù)據(jù)格式來(lái)對(duì)外提供服務(wù)。

可以說(shuō)現(xiàn)在開放的第三方api,一定會(huì)提供json的接口數(shù)據(jù)格式,當(dāng)然,有些第三方也會(huì)在支付接口中返回xml的數(shù)據(jù)通訊格式。

REST

rest全稱是資源表現(xiàn)形式的狀態(tài)變化,它是一種架構(gòu)風(fēng)格,用來(lái)約束資源的查找和定位。

它不是數(shù)據(jù)的傳輸格式,它也不是單單約束數(shù)據(jù)的傳輸格式,它約束的是資源的狀態(tài)改變方式,它把一切都看成資源。

這里的表現(xiàn)形式指的是json,xml或者h(yuǎn)tml任何數(shù)據(jù)格式,包括圖片格式。

狀態(tài)變化指的是通過(guò)GET,POST,DELETE,PUT等動(dòng)作來(lái)修改它的狀態(tài),使它的狀態(tài)增加,減少,被刪除等。

REST 提供的是一個(gè)無(wú)狀態(tài)的服務(wù),它不會(huì)記錄訪問(wèn)者的上次訪問(wèn)狀態(tài)。

雖然很多問(wèn)題可以被rest來(lái)解決,比如交易映射,增刪改查映射,文檔映射,但是還是有很多情況下,rest無(wú)法使用所有的映射情況。

GRPC

gRPC 是來(lái)自 Google 的現(xiàn)代輕量級(jí)通信協(xié)議。它主要是用來(lái)解決遠(yuǎn)程過(guò)程調(diào)用的問(wèn)題。

在分布式系統(tǒng)中,各個(gè)系統(tǒng)經(jīng)常需要調(diào)用其它系統(tǒng)的服務(wù),除了通過(guò)http接口方式進(jìn)行調(diào)用之外,還有其它的調(diào)用方式,gRPC就是其中的一種。

它是非常有效的一種方法,它利用了 HTTP/2 的特性,解決了同步發(fā)送問(wèn)題,它可以進(jìn)行廣播發(fā)送,也可以實(shí)現(xiàn)多路復(fù)用,通過(guò)一個(gè)連接,它可以傳輸更多的消息。

它采用的是二進(jìn)制的數(shù)據(jù)格式,相比于json,xml等文本格式,它大大縮小了數(shù)據(jù)傳輸?shù)捏w積,同樣的帶寬可以更快更多地傳輸消息。

GraphQL

GraphQL 是一種針對(duì) Graph(圖狀數(shù)據(jù))進(jìn)行查詢特別有優(yōu)勢(shì)的 Query Language(查詢語(yǔ)言),所以叫做 GraphQL。

GraphQL 是 Facebook 發(fā)明的,它為查詢api提供了另一種方式,可以通過(guò)一個(gè)接口,根據(jù)不同的查詢條件,返回不同的數(shù)據(jù)。

GraphQL 允許您在單個(gè)查詢中詢問(wèn)您想要的內(nèi)容,從而節(jié)省帶寬并減少瀑布式請(qǐng)求。它還使客戶端能夠請(qǐng)求他們自己獨(dú)特的數(shù)據(jù)規(guī)范。

API 開發(fā)人員使用 GraphQL 創(chuàng)建一個(gè)模式來(lái)描述客戶端可以通過(guò)該服務(wù)查詢的所有可能的數(shù)據(jù)。GraphQL 模式由對(duì)象類型組成,這些類型定義了您可以請(qǐng)求哪種類型的對(duì)象以及它具有哪些字段。當(dāng)查詢進(jìn)來(lái)時(shí),GraphQL 會(huì)根據(jù)架構(gòu)驗(yàn)證查詢。

GraphQL 查詢不僅能夠獲得資源的屬性,還能沿著資源間引用進(jìn)一步查詢。典型的 REST API 請(qǐng)求多個(gè)資源時(shí)得載入多個(gè) URL,而 GraphQL 可以通過(guò)一次請(qǐng)求就獲取你應(yīng)用所需的所有數(shù)據(jù)。這樣一來(lái),即使是比較慢的移動(dòng)網(wǎng)絡(luò)連接下,使用 GraphQL 的應(yīng)用也能表現(xiàn)得足夠迅速。

總結(jié)

在萬(wàn)物互聯(lián)的時(shí)代,人們總是必不可少地需要跟第三方接口打交道,或者是向第三方提供接口服務(wù),我們總是希望我們的程序可以更快,更高效,更便捷,因此開發(fā)人員不斷研發(fā)和改進(jìn)技術(shù),未來(lái)的接口服務(wù)不是第三方提供什么服務(wù)來(lái)給用戶使用,而是用戶想要什么數(shù)據(jù)就可以從第三方調(diào)取。

 

責(zé)任編輯:趙寧寧 來(lái)源: 今日頭條
相關(guān)推薦

2020-06-12 07:50:15

大數(shù)據(jù)

2013-11-26 15:51:45

Android編程藍(lán)牙數(shù)據(jù)傳輸

2010-04-07 14:54:38

2021-05-19 07:50:53

Node.js數(shù)據(jù)傳輸

2023-04-12 16:20:00

同步數(shù)據(jù)異步數(shù)據(jù)傳輸

2024-05-06 10:55:39

2021-12-14 11:01:44

TCPUDP網(wǎng)絡(luò)協(xié)議

2010-07-13 15:55:12

FTP數(shù)據(jù)傳輸模式

2015-10-14 09:44:55

TCP網(wǎng)絡(luò)協(xié)議數(shù)據(jù)傳輸

2011-03-04 13:22:10

FileZilla

2020-08-13 08:34:10

MySQL數(shù)據(jù)DTS

2010-06-30 15:06:27

FTP數(shù)據(jù)傳輸模式

2009-04-10 23:40:06

2009-05-19 17:05:10

2009-12-08 11:17:41

WCF雙向通信

2009-07-07 16:46:33

數(shù)據(jù)傳輸銅纜結(jié)構(gòu)

2021-06-09 11:28:06

加密數(shù)據(jù)Jsencrypt

2019-09-06 09:11:36

以太網(wǎng)數(shù)據(jù)二層交換

2017-05-04 12:48:18

WOT網(wǎng)易NDC

2024-08-05 09:31:00

MySQLDTS數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)