Performance

如果所需的一切都可以通過直接數據庫連接安全地處理,那麼擁有 API 後端的原因是什麼?

  • September 26, 2021

今天的數據庫允許嚴格的使用者限制,例如對特定表的只讀。

如果客戶端應用程序非常簡單並且只需要讀取數據庫,那麼讓客戶端直接連接到數據庫而不需要 API 後端是不是更好?

如果數據庫可以處理所需的一切,那麼擁有 API 後端的原因是什麼?

目前的規範是使數據庫本地訪問並且只暴露後端。

我想這會讓事情變得更快。

您只考慮非惡意使用者的情況。雖然可以鎖定數據庫以使其只讀,這樣最終使用者就不會意外更改數據,但讓外部世界可以訪問內部數據庫伺服器會使它面臨更高的漏洞風險。

當將整個伺服器暴露在網際網路上時,有許多攻擊向量,有些甚至還沒有被發現。API 已經是一種更加可控的技術實現,它消除了大多數攻擊媒介並有助於最大限度地減少漏洞。

此外,API 有助於集中從應用程序到數據庫伺服器的通信。例如,如果您需要將數據庫伺服器遷移到不同的主機名,則不必更新每個應用程序中的數據庫連接,您只需在一個地方更新它 - API。(當然還有很多其他方法可以管理這種變化,例如在網路級別,但還有一個值得一提的好處。)

最後,值得一提的另一件事是,API 能夠將所有測試(與數據庫呼叫相關)與使用呼叫的特定應用程序分離,從而有助於提高可測試性。相反,您可以將它們重構為一個專用的測試項目,該項目也使用這些呼叫。

引用自:https://dba.stackexchange.com/questions/300151