首頁>技術>

譯者:DevOps亮哥

審校:DevOps亮哥

API一詞相信每一個開發人員都不陌生,API是軟體系統之間或不同組成部分之間進行連線的約定。特別是移動應用程式和微服務架構的不斷普及,API就是他們成功背後的功臣,這個時候如何設計和開發API就顯得格外重要,今天這篇文章就是一份完整的API開發指南,介紹了在開發API過程中的內容、工具和最佳實踐。請留好收藏,還可以轉發給其他的朋友。

一、API介紹

API,它的全稱是Application Programming Interface——應用程式程式設計介面,是一組指令、標準或要求,使軟體或應用程式可以利用另一應用程式、平臺或裝置的功能/服務來獲得更好的服務。簡而言之,它可以讓應用程式彼此通訊。例如,當我們在使用支付寶、微信APP時,都會通過API請求後臺伺服器上的資料,在APP上進行展示。

API是處理資料或啟動兩個產品或服務之間的通訊的所有應用程式的基礎。它使移動應用程式或平臺能夠與其他應用程式或平臺共享其資料,並在不涉及開發人員的情況下簡化使用者體驗。最重要的是,API消除了從頭開始構建類似程式或平臺的需求。您可以使用其他一些應用程式/平臺中的現有應用程式。基於這些原因,應用程式開發人員和業務主管都將重點放在API開發上。

在深入研究之前,先讓我們看一下使您更容易理解該概念的基本術語。

二、API術語API Key:當一個API請求通過Header或引數來識別呼叫者時,傳遞到請求中的授權碼就是API Key。Endpoint:當一個API與另一個系統互動時,通訊通道的兩端被認為是Endpoint。JSON:是用於API請求引數和響應主體的資料格式。GET:RESTful API的HTTP方法,用於獲取資源。POST:RESTful API的HTTP方法,用於建立資源。OAuth:它基本上是一個開放標準的授權框架,可以在不直接共享憑據的情況下從客戶端進行訪問。REST:REST(代表性狀態轉移)是一種程式設計體系結構的實現,用於提供兩個裝置/系統之間的通訊效率。它是一個輕量級的,他是通過資料引用而不是資料副本的方式來共享資料,基於這個架構建立的系統稱為“RESTful”系統,而RESTful系統中最著名的例子就是全球資訊網。SOAP:SOAP或簡單物件訪問協議是一種訊息協議,用於在計算機網路中執行Web服務時共享結構化資訊。它與XML資訊集和應用程式層協議(如HTTP和SMTP)一起使用,分別用於訊息格式和訊息協商與傳輸。延遲:延遲定義為API從請求到響應的過程中所花費的總時間。速率限制:API速率限制是指定義終端使用者可以訪問API的速率的過程。也就是說限制使用者每次可以向API傳送的請求數。API限流:調節使用者在特定時間段內使用API的過程稱為限流。這可以用於API限制,比如,設定每天限制1000個API請求,當用戶點選1001個請求時,伺服器會返回429的HTTP狀態碼,並帶著“請求太多”的訊息。三、API的工作流程

假如開啟一些旅遊應用程式/網站來預訂航班,再填寫了表格——輸入了出發和返回日期,城市,航班以及其他相關詳細資訊——並提交了。只需幾秒鐘,螢幕上就會顯示航班清單以及價格,時間,座位可用性以及其他詳細資訊。

為了提供這樣嚴格的資料,該平臺向航空公司的網站傳送了請求,以訪問其資料庫並通過API獲取相關資料。網站以API形式傳遞給平臺數據作為響應,平臺將其顯示在螢幕上,基本的過程如下:

在此,航班預訂應用程式/平臺和航空公司的網站充當端點(EndPoint),而API充當簡化資料共享過程的中介。在談論端點通訊時,API有兩種形式,即REST和SOAP。儘管這兩種方法都能帶來有效的結果,但目前移動應用開發程式更喜歡使用REST而不是SOAP,因為SOAP API繁重且依賴於平臺。

下面就介紹一下如何開發API?選擇哪些工具和技術?

四、開發API的工具

在開發API的過程中有許多工具和技術可以使用,下面介紹幾個用於為開發人員開發API的流行工具:

Apigee:它是Google的API管理工具,通過重新建立API方法來幫助開發人員和企業家在數字化轉型方面取得成功。APIMatic and API Transformer:提供了複雜的自動生成工具,通過API特定格式構建高品質的SDK和程式碼片段,並將其轉換為其他規範的形式,如RAML,API Blueprint等等。API Science:該工具主要用於評估內部API和外部API的效能。API Serverless Architecture:該產品藉助雲的伺服器基礎架構協助移動應用程式開發人員設計、構建、釋出和託管API。API Platform:這是一個適用於Web API開發的開源PHP框架。OAuth2:這是一種用於身份驗證和授權API的身份管理解決方案。ClearBlade:這是一個API管理程式,用於將IOT技術融入流程中。GitHub:這是一個開源的Git儲存庫,用來託管程式碼服務,可以提交程式碼、釋出請求,版本控制。還可以將程式碼儲存在私有儲存庫中。Postman:這是一個API工具鏈,使開發人員能夠執行、測試、記錄和評估其API的效能。五、高效API的特性

1、修改時間戳/按條件搜尋:API應該允許使用者根據不同的條件(例如日期)搜尋資料,並能對檢索的資料進行修改(更新,編輯和刪除),並能記錄修改的時間戳。

2、分頁:當資料量很大的時候,我們不希望每次都獲取完整的資料列表。在這種情況下,API應該能夠確定一次顯示多少資料以及總頁數,還應告知終端使用者剩餘的資料頁數。

3、排序:API應授權使用者根據修改時間或其他條件對資料進行排序。

4、JSON支援/ REST:儘量使用RESTful風格進行有效的API開發。REST API是無狀態的,輕量級的。此外,JSON的語法類似於大多數程式語言的語法,這使移動應用程式開發人員可以輕鬆地將其解析為任何其他語言。

5、通過OAuth進行授權:由於API需要對外暴露,因此還需要通過OAuth進行授權-您只需單擊一個按鈕即可完成。

六、構建API的最佳實踐流量限制:流量限制是考慮流量溢位,並保護其免受Dos攻擊的一種好習慣。將API閘道器視為增強點:在設定限制規則、API 祕鑰和OAuth的應用時,必須將API閘道器視為最佳實施點。只有正確的、合法的使用者才能訪問後面的資料,並能在閘道器這裡加密訊息或編輯私密訊息,從而分析和管理API。允許覆蓋HTTP方法:由於某些代理僅支援GET和POST方法,因此需要讓RESTful API 覆蓋HTTP方法,可以使用自動以HTTP頭X-HTTP-Method-Override。評估API和基礎結構:當前,實時分析是可以實現的,但是如果API伺服器存在記憶體洩漏、CPU耗盡或其他問題該怎麼辦?考慮到這種情況,可以使用一些工具來對API進行評估和排查。文件:為API編寫文件,可以使用OpenAPI的規範的格式,這樣其他應用程式開發人員可以輕鬆的了解整個過程並利用這些資訊來提供更好的使用者體驗。總之,良好的API文件可以減少專案實施的時間,提供API開發的效率。

翻譯自:https://appinventiv.com/blog/complete-guide-to-api-development/

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 原來寫個Vue 首頁就這麼簡單