在整個 api 生命週期中使用模擬服務器

APIGit

2023-04-25

The-Many-Ways-to-Use-Mock-Servers

在整個 API 生命週期中使用模擬服務器

模擬服務器是解決整個開發過程中出現的各種意外挑戰的有用解決方案。與多個 API 集成可能非常耗時,個人平均花費 16% 的時間進行調試,而在理想狀態下僅為 10%。外部依賴和並發的團隊努力也可能導致延遲和挫敗感。然而,通過使用模擬服務器,開發人員可以最大限度地減少這些挫折和中斷,使其成為貫穿整個開發生命週期的寶貴工具。

什麼是模擬服務器?

需要澄清的是,模擬服務器是 Apigit 平台中可用的一種工具,它使開發人員能夠模擬 API 請求和響應。當請求發送到模擬服務器時,它會將請求配置與保存的示例進行匹配,並提供帶有相應數據的響應。

模擬服務器提供了一種在生產環境中模擬 API 響應的方法,無需開發人員編寫任何代碼。通過使用模擬服務器,縮短了 API 基礎架構開發中的反饋循環,從而實現更快的迭代和更快速的開發。

在這篇博文中,我們將討論使用模擬服務器的好處以及它們如何改進您的開發工作流程。 Apigit 提供了幾種創建模擬服務器的方法,我們將詳細探討這些方法。

使用模擬服務器進行協作

在大多數情況下,開發項目涉及多個團隊和個人同時處理項目的不同方面。這包括前端開發人員、後端開發人員、QA 工程師和其他專家,即使在較小規模的項目中也是如此。為了最大限度地提高生產力和效率,團隊通常同時處理項目的不同部分。

模擬服務器是一種多功能工具,可以幫助在整個開發過程中保持效率,從而使 API 生產者和消費者都受益。它們可以在 API 開發生命週期的各個階段使用。例如,當前端團隊想要集成來自後端或服務器的數據時,可以使用模擬服務器來模擬尚未完全配置或運行的 API 端點。這確保即使在沒有完整的 API 功能的情況下,前端工程也是準確且可行的。

可以在開發過程的早期階段使用模擬服務器,例如在設計階段。 Apigit 使開發人員能夠根據 API 規範創建模擬服務器,而不是等待 API 端點被開發和部署,它可以模擬服務器響應以供前端使用。這允許 UI 開發人員通過查詢模擬服務器並處理預期的響應來立即開始。一旦實際 API 準備就緒,開發人員就可以將模擬 API 響應的 URL 替換為真實 API 的 URL(以及任何必要的授權)。

通過模擬外部依賴項進行有效測試

API 和開發項目不是孤立的實體,後端開發往往需要與外部服務集成。但是,對外部服務器的調用是您無法控制的,它們會產生不可預測和不可靠的結果,例如返回 503 Service Unavailable 錯誤。如前所述,調試 API 問題可能會佔用總開發時間的 16%。當一個項目依賴於多個外部 API 時,可能會遇到訪問失敗的 API 的問題,這可能會阻礙進度。然而,這些問題不一定會使開發完全停止。

外部 API 調用通常是開發工作流的關鍵組成部分,但在開發過程中依賴外部服務可能存在風險。為了減輕這種風險,可以使用模擬服務器來模擬訪問外部服務器並返回預期響應的體驗。這在調用外部服務器或 API 是開發過程的關鍵組成部分的情況下特別有用。

在這種情況下,模擬服務器有助於開發生命週期的本地測試和開發階段。讓我們探索一個理論示例:

假設您正在開發一個帶有訂購流程的電子商務應用程序,其中您的 API 與需要保持同步的運輸服務相結合。具體來說,當一個項目被添加到電子商務應用程序中的購物車時,它也應該被添加到運輸服務的購物車中,以便運輸服務可以跟踪需要運輸的東西。這意味著對您的 API 發出的每個請求也會觸發對運輸服務 API 的請求。

A visual example of testing an e-commerce site but productivity is stopped because of an issue in the Shipping API 測試電子商務網站但由於運輸 API 中的問題而停止生產的可視化示例

API 開發的一個關鍵部分是確保項目所依賴的外部服務或 API 正常運行並返回預期結果。但是,對外部服務器的調用並不總是可靠的,並且會產生意外錯誤,從而需要進行調試。在這種情況下,模擬服務器可以派上用場,它可以模擬訪問外部服務器並返回預期響應的體驗。

在開發生命週期的本地測試和開發階段,模擬服務器有助於隔離工作流中的各個 API。通過為外部 API 配置模擬服務器,例如電子商務應用程序中的運輸服務 API,儘管 API 已關閉,但仍可以根據 API 的預期結果繼續工作。這使測試過程更加高效,並減少了項目因 API 故障而停止的可能性。

在測試電子商務應用程序的訂購流程時,API 需要與運輸服務保持同步。但是,如果運輸 API 返回錯誤或已關閉,則可能會導致開發和測試延遲。為了避免這種依賴性,可以使用模擬服務器來模擬來自外部服務的預期響應。借助 Apigit,開發人員可以單獨測試每個 API 並確定具體問題。通過為運輸 API 配置模擬服務器,即使運輸 API 出現故障,開發人員也可以根據預期結果繼續工作。下圖顯示了相同的工作流程,其中模擬服務器替換了運輸 API,只要內部 API 按預期運行,測試就可以不間斷地繼續進行。

A visual example of testing the e-commerce site while using a mock server to simulate the Shipping API 使用模擬服務器模擬運輸 API 時測試電子商務網站的可視化示例

跟我說數據

無論使用何種協議或 HTTP 動詞,數據共享都是 API 的核心。但是,此數據可能包含您可能不想用於測試目的的敏感個人信息。另一方面,使用像“John Doe”這樣的佔位符數據會變得單調和不切實際。這就是模擬服務器派上用場的地方。

模擬服務器對於管理日常測試和棘手的用例非常有用,包括那些需要保護私有數據或當您想要模擬類似生產的工作流時。

使用 Apigit,您可以通過從一系列緊密耦合的請求和相應的響應示例中生成動態數據來為您的模擬服務器創建動態數據。您可以自定義響應以滿足您的需要,而不是依賴於默認保存的示例。

實現此目的的一種方法是編輯響應示例以包含動態變量。這種方法使您的模擬服務器能夠利用內置庫並提供模擬真實世界數據的虛擬數據。

互聯網是一個不可預測的地方——讓模擬為您的開發生命週期帶來秩序

開發人員可以採用與體育運動類似的思維方式,他們專注於控制可控因素。在開發中,外部API的穩定性並不總是在你的掌控之中,但是可以使用模擬服務器來模擬應該發生的事情,減少意外問題。通過使用模擬服務器,開發人員可以創造他們有效開展工作所需的穩定性。因此,讓模擬服務器成為開發人員實現目標所需的穩定性,而不會出現任何混亂或意外問題。