(網(wǎng)經(jīng)社訊)一、API 的基本情況
伴隨著云計算、移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)的蓬勃發(fā)展,越來越多的開發(fā)平臺和第三方服務(wù)快速涌現(xiàn),應(yīng)用系統(tǒng)與功能模塊復(fù)雜性不斷提升,應(yīng)用開發(fā)深度依賴于應(yīng)用程序接口(Application ProgrammingInterface,API)之間的相互調(diào)用。近年來移動應(yīng)用深入普及,促使社會生產(chǎn)、生活活動從線下轉(zhuǎn)移到了線上,特別在此次新冠肺炎疫情期間,協(xié)同辦公、在線教育、便民服務(wù)等領(lǐng)域移動應(yīng)用積極助力復(fù)工復(fù)產(chǎn),各地依托大數(shù)據(jù)推出“健康碼”等疫情防控新舉措,API 在其中起到了緊密鏈接各個元素的作用。為滿足各領(lǐng)域移動應(yīng)用業(yè)務(wù)需要,API 的絕對數(shù)量持續(xù)增長,通過API 傳遞的數(shù)據(jù)量也飛速增長。API 技術(shù)借助移動應(yīng)用蓬勃發(fā)展的勢頭融入社會經(jīng)濟(jì)的方方面面,不僅為數(shù)據(jù)交互提供了便利,并且推動了企業(yè)、組織機(jī)構(gòu)間的溝通和對話,甚至創(chuàng)造了新的經(jīng)濟(jì)模式:API 經(jīng)濟(jì)。
(一)API 簡介
API 是預(yù)先定義的函數(shù),為程序之間數(shù)據(jù)交互和功能觸發(fā)提供服務(wù)。調(diào)用者只需調(diào)用API,并輸入預(yù)先約定的參數(shù),即可實(shí)現(xiàn)開發(fā)者封裝好的各種功能,無需訪問功能源碼或理解功能的具體實(shí)現(xiàn)機(jī)制。
從功能角度來看,API 是前端調(diào)用后端數(shù)據(jù)的通道;從業(yè)務(wù)角度來看,API 是將封裝后的應(yīng)用對外開放的訪問接口。在信息系統(tǒng)內(nèi)部,隨著業(yè)務(wù)功能的逐漸細(xì)化,各個功能模塊之間需要利用API 技術(shù)來進(jìn)行協(xié)調(diào);在信息系統(tǒng)外部,API 承擔(dān)著與其他應(yīng)用程序進(jìn)行交互的重要任務(wù)。
(二)API 分類及組成要素
1.API 分類
API 技術(shù)應(yīng)用廣泛,可滿足不同領(lǐng)域、不同業(yè)務(wù)的數(shù)據(jù)傳輸和操作需求,在包括軟件開發(fā)工具包(Software Development Kit,SDK)、Web 應(yīng)用、網(wǎng)關(guān)等諸多領(lǐng)域均可發(fā)現(xiàn)API 的身影。因此,從應(yīng)用領(lǐng)域角度難以合理清晰地區(qū)分其種類。為此,本報告從API 開放程度和API 核心技術(shù)兩個維度進(jìn)行分類介紹。
(1)按API 開放程度分類
從API 的開放程度出發(fā),API 可以分為開放API、面向合作方API和內(nèi)部API。
開放API 是面向公網(wǎng)開放的接口,此類API 允許公眾調(diào)用。調(diào)用者可以是任何人或者機(jī)構(gòu),不需要和API 提供者建立合作關(guān)系,例如公司門戶網(wǎng)站等。
面向合作方API 指的是企業(yè)或組織用來與外部合作伙伴進(jìn)行溝通、交流和系統(tǒng)集成的API,例如面向外包機(jī)構(gòu)、設(shè)備供應(yīng)商等。
內(nèi)部API 僅在企業(yè)或組織內(nèi)部使用,用來協(xié)調(diào)內(nèi)部不同系統(tǒng)、應(yīng)用之間的調(diào)用關(guān)系,例如CRM 系統(tǒng)API、薪資系統(tǒng)API 等。
(2)按API 核心技術(shù)分類
從API 核心技術(shù)進(jìn)行劃分,可分為簡單對象訪問協(xié)議(SimpleObject Access Protocol,SOAP)API,RESTful(RepresentationalState Transfer,REST)API 及遠(yuǎn)程過程調(diào)錄(Remote Procedure Call,RPC)API。
SOAP API 是指使用Web 服務(wù)安全性內(nèi)置協(xié)議的API?;赬ML協(xié)議,此類API 技術(shù)可與多種互聯(lián)網(wǎng)協(xié)議和格式結(jié)合使用,包括超文本傳輸協(xié)議(HTTP)、簡單郵件傳輸協(xié)議(SMTP)、多用途網(wǎng)際郵件擴(kuò)充協(xié)議(MIME)等。
RPC API 是指使用遠(yuǎn)程過程調(diào)錄協(xié)議進(jìn)行編程的API,RPC 技術(shù)允許計算機(jī)調(diào)用其他計算機(jī)的子系統(tǒng),并定義了結(jié)構(gòu)化的請求方式。
不同于上述兩類依托于協(xié)議的API 技術(shù),RESTful API 是一種架構(gòu),其通過HTTP 和JSON 進(jìn)行傳輸,不需要存儲或重新打包數(shù)據(jù),同時支持TLS 加密。
2.API 組成要素
API 通常包含如下組成要素,在這些要素的共同作用下,API 才能發(fā)揮預(yù)期作用。
(1)通信協(xié)議:API 一般利用HTTPS 等加密通訊協(xié)議進(jìn)行數(shù)據(jù)傳輸,以確保數(shù)據(jù)交互安全。
(2)域名:用于指向API 在網(wǎng)絡(luò)中的位置。API 通常被部署在主域名或者專用域名之下,接入方可通過域名調(diào)用相關(guān)API。
(3)版本號:不同版本的API 可能存在巨大差異,尤其對于多版本并存、增量發(fā)布等情況,API 版本號有助于準(zhǔn)確區(qū)分API 的參數(shù)設(shè)置。
(4)路徑:路徑又稱“終點(diǎn)”(end point),指表示API 及API 執(zhí)行功能所需資源的具體地址。
(5)請求方式:API 常用的請求方式有GET、POST、PUT 和DELETE四種,分別用于獲取、更新、新建、刪除指定資源。
(6)請求參數(shù):即傳入?yún)?shù),包含數(shù)據(jù)格式、數(shù)據(jù)類型、可否為空以及文字描述等內(nèi)容。傳入?yún)?shù)主要包括Cookie、Requestheader、請求body 數(shù)據(jù)和地址欄參數(shù)等。
(7)響應(yīng)參數(shù):即返回參數(shù)或傳出參數(shù),返回參數(shù)本身默認(rèn)沒有值,用于帶出請求參數(shù)要求API 后臺所返回的數(shù)據(jù)。
(8)接口文檔:接口文檔是記錄API 相關(guān)信息的文檔,內(nèi)容包括接口地址、請求方式、傳入?yún)?shù)(請求參數(shù))和響應(yīng)參數(shù)等。
(三)API 安全標(biāo)準(zhǔn)化情況
近年來,我國陸續(xù)出臺多部數(shù)據(jù)接口有關(guān)標(biāo)準(zhǔn),對數(shù)據(jù)接口在不同領(lǐng)域的應(yīng)用、部署、管理、防護(hù)等進(jìn)行了規(guī)范。
在國家標(biāo)準(zhǔn)層面,我國多部現(xiàn)行及制定中的國家標(biāo)準(zhǔn)針對API安全提出了安全要求。GB/T 35273-2020《信息安全技術(shù)個人信息安全規(guī)范》將API 開發(fā)、調(diào)用與個人信息安全相結(jié)合,明確指出“個人信息控制者在提供產(chǎn)品或服務(wù)的過程中部署了收集個人信息的第三方插件(例如網(wǎng)站經(jīng)營者與在其網(wǎng)頁或應(yīng)用程序中部署統(tǒng)計分析工具、軟件開發(fā)工具包SDK、調(diào)用地圖API 接口),且該第三方并未單獨(dú)向個人信息主體征得收集、使用個人信息的授權(quán)同意,則個人信息控制者與該第三方為共同個人信息控制者?!敝贫ㄖ械膰覙?biāo)準(zhǔn)GB/ XXXX-XX《信息安全技術(shù)政務(wù)信息共享數(shù)據(jù)安全技術(shù)要求》
要求共享交換過程中涉及的授權(quán)方(共享數(shù)據(jù)提供方、共享交換服務(wù)方)“支持資源文件、庫表、接口等各共享方式上不同粒度的權(quán)限控制”,并在級聯(lián)接口安全方面要求“共享交換服務(wù)方應(yīng)采用密碼技術(shù)對共享交換系統(tǒng)間的級聯(lián)接口進(jìn)行安全防護(hù),保障通過級聯(lián)接口傳遞的數(shù)據(jù)的保密性和完整性?!?/p>
在通信行業(yè)標(biāo)準(zhǔn)方面,隨著云計算、移動互聯(lián)網(wǎng)等領(lǐng)域的快速發(fā)展,通信行業(yè)針對特定API 類型、API 應(yīng)用場景等制定了一系列標(biāo)準(zhǔn),細(xì)化了API 相關(guān)安全要求與規(guī)范。其中YD/T 2807.4-2015《云資源管理技術(shù)要求第4 部分:接口》對涉及的接口類型進(jìn)行了梳理,規(guī)定了云資源管理平臺及分平臺間接口的技術(shù)要求。YD/T 3217-2017《基于表述性狀態(tài)轉(zhuǎn)移(REST)技術(shù)的業(yè)務(wù)能力開放應(yīng)用程序接口(API)視頻共享》則針對基于REST 技術(shù)的視頻共享能力開放API進(jìn)行了規(guī)范,涵蓋了接口資源定義、資源操作、數(shù)據(jù)結(jié)構(gòu)、基本流程和安全要求等多方面內(nèi)容。
在金融行業(yè)標(biāo)準(zhǔn)方面,已發(fā)布多部標(biāo)準(zhǔn)對API 技術(shù)的部署、管理進(jìn)行規(guī)范。其中JR/T 0171-2020《個人金融信息保護(hù)技術(shù)規(guī)范》
要求金融機(jī)構(gòu)嵌入或接入API 時,應(yīng)符合相應(yīng)技術(shù)規(guī)范要求,進(jìn)行檢查、評估和審計。JR/T 0185—2020《商業(yè)銀行應(yīng)用程序接口安全管理規(guī)范》則對API 技術(shù)提出了包括數(shù)據(jù)完整性保護(hù)、授權(quán)管理、使用情況監(jiān)控、接口訪問日志留存、安全密鑰管理、網(wǎng)絡(luò)安全防護(hù)措施部署、接口安全監(jiān)測、接口調(diào)用控制、接口變更處理、應(yīng)急處理方案、安全審計溯源等一系列安全要求。
在交通行業(yè)標(biāo)準(zhǔn)方面,也相繼出臺了包括JT/T 1183-2018《出租汽車ETC 支付接口規(guī)范》、JT/T 1049-2017《道路運(yùn)政管理信息系統(tǒng)》在內(nèi)的多部API 相關(guān)標(biāo)準(zhǔn)和規(guī)范性文件。
研究報告_000001-1.png" alt="" width="1325" height="1876"/>