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