如何透過簡單的步驟建立 MySQL REST API

王林
發布: 2024-07-25 11:40:21
原創
836 人瀏覽過

How to Create a MySQL REST API in asy Steps

根據 StackOverflow 2022 年的調​​查,46% 的專業開發人員將 MySQL 評為工作區中最受歡迎的資料庫。作為程式設計師,我們不應該為重複編寫程式碼而煩惱,否則這些程式碼是容易取得的、健壯的、經過充分測試的。

然而,這個問題在 REST API 領域仍然持續存在,儘管實現過程到目前為止是死記硬背、重複性的、容易出錯和疏忽的。由於以下幾個原因,這種疏忽代價高昂:

  • 最終用戶只是「不關心」API 是如何實現的,這意味著為每個專案手動製作新的 API 不會帶來競爭優勢。
  • 由於安全漏洞和效能問題,API 實作和部署階段的錯誤和監督可能會付出非常高昂的代價。
  • 重複建立一次性API意味著它們無法透過單一平台進行管理;除非團隊決定投入更多時間和精力來建立自訂管理解決方案。

幸運的是,對於我們程式設計師來說,DreamFactory 平台可以透過為 API 文件、生成和安全性提供集中式解決方案,輕鬆為您的團隊免除所有這些麻煩以及更多麻煩。在本教程中,您將了解為 MySQL 資料庫建置、保護和部署 REST API 是多麼容易。

目錄

  • 什麼是 MySQL REST API?
  • 為什麼 MySQL REST API 很重要?
    • 1.使用 DreamFactory
    • 2.產生 MySQL REST API
    • 3.查看 Swagger 文件
    • 4.建立角色和 API 金鑰
    • 5.為您的 MySQL API 設定 CORS
    • 6.測試 MySQL REST API
  • 建立 MySQL API 的替代方法
  • 從這裡到哪裡

什麼是 MySQL REST API?

MySQL API 是一組函數、協定和工具,可讓開發人員透過其應用程式或腳本以程式設計方式與 MySQL 資料庫互動。

該 API 為應用程式提供了一種向 MySQL 資料庫發送查詢、檢索資料、修改資料以及執行各種資料庫操作的方法。它充當應用程式程式碼和資料庫伺服器之間的中間層,促進無縫通訊和資料操作。

常見的 MySQL API 包括 MySQL Connector/ODBC、MySQL Connector/J(用於 Java)、MySQLi(用於 PHP)以及許多其他 API,每個 API 都針對特定的程式語言或框架量身定制。

為什麼 MySQL REST API 很重要?

MySQL API 透過促進應用程式和 MySQL 資料庫之間的交互,在軟體開發中發揮關鍵作用。

這些 API 充當“中間人”,抽象資料庫操作的複雜性並為開發人員提供標準化介面。它們的意義在於使應用程式能夠有效地儲存、檢索、修改和管理資料。

MySQL API 提供與各種程式語言和框架的相容性,讓開發人員可以使用他們喜歡的工具使用 MySQL。它們透過提供預先準備語句和輸入驗證等功能來增強安全性,以防止 SQL 注入等常見安全漏洞。

連線池、快取等效能最佳化功能有助於提高資料庫互動效率。 MySQL API 提供的可移植性意味著應用程式可以轉換到不同的資料庫系統,而無需進行重大程式碼修改,而其可擴充性功能使它們適合處理增加的工作負載。

MySQL API 受益於 MySQL 開發者社群的廣泛支持,確保為開發者提供豐富的資源、程式庫和工具。

如何建立 MySQL REST API

DreamFactory 可以為多種資料庫產生 REST API,其中包括 MySQL、Microsoft SQL Server、Oracle、PostgreSQL 和 MongoDB。

1.使用DreamFactory

為此,您需要登入 DreamFactory 管理介面,導覽至 Services,然後點擊位於左側的 Create 按鈕進入服務建立介面畫面。從那裡,您將透過導覽至 API Generation > 選擇 MySQL 服務類型。資料庫,然後從我們的資料庫選項中選擇 MySQL(請參閱下面的螢幕截圖)。

How to Create a MySQL REST API in asy Steps

接下來,系統將提示您提供名稱、標籤和描述(如下螢幕截圖)。後兩者僅用於管理介面中的參考目的,但是名稱值特別重要,因為您很快就會看到它將包含 API URL 的一部分。

How to Create a MySQL REST API in asy Steps

最後,點選設定標籤。在這裡,系統將提示您提供資料庫連接憑證(請參閱下面的螢幕截圖)。這應該不是什麼新鮮事;您將提供主機名稱、使用者名稱、密碼和資料庫。此外,您還可以選擇指定其他配置特徵,例如驅動程式選項、時區和快取首選項。出於本教學的目的,我將堅持使用必填字段,並保留可選功能不變。

How to Create a MySQL REST API in asy Steps

憑證就位後,只需按下螢幕底部的「儲存」按鈕,不管你相信與否,REST API 已產生!

2.查看Swagger文檔

除了 API 之外,DreamFactory 還將為您的 API 自動產生一組廣泛的互動式 Swagger 文件。您可以透過點擊管理介面頂部的「API 文件」選項卡,然後按名稱選擇新產生的服務來存取它。您將看到 44 個端點,可用於執行預存程序、執行 CRUD 操作、查詢檢視等等。例如,下面的螢幕截圖僅顯示了新產生的 MySQL REST API 端點的一小部分!

How to Create a MySQL REST API in asy Steps

3. 建立角色和 API 金鑰

所有 DreamFactory 產生的 API 都會自動受到(至少)API 金鑰的保護。您可以選擇使用基本驗證、SSO 或目錄服務(LDAP 和 Active Directory)對使用者進行驗證。此外,您可以將每個 API 金鑰和/或使用者與一個「角色」相關聯,該角色準確地確定允許使用者存取哪些服務。不僅如此,您還可以限制與特定資料庫表或一組表、特定端點的交互,甚至限制允許哪些 HTTP 方法。

保護負責代表 API 與 MySQL 資料庫互動的使用者的安全性是 API 開發和整合過程中極為重要的一環。請參閱我們關於使用 MySQL 權限和 DreamFactory 改進資料安全性的其他建議

作為範例,讓我們建立一個新角色,將關聯的 API 金鑰限制為在新建立的 MySQL API 中以唯讀方式與單一表進行互動。為此,請導航至“角色”選項卡,然後按一下“建立”按鈕。您將看到以下螢幕截圖中的介面。

接下來,按一下「存取」標籤。您可以在此處定義角色可以做什麼。在下面的螢幕截圖中,您將看到我已將角色限制為與 MySQL 服務交互,並且在該服務中,角色只能透過 GET 方法與 _table/employees* 端點進行交互。寶貝,我們處於封鎖狀態!

How to Create a MySQL REST API in asy Steps

點選儲存按鈕儲存角色。現在我們將建立一個新的 API 金鑰並將該金鑰與該角色相關聯。為此,請按一下 API 類型下拉清單下的 API 金鑰標籤並選擇 API 金鑰,然後按一下「+」按鈕。為您的新應用程式指派名稱和描述,確保將其設為 Active,然後將其指派為 MySQL 的預設角色,就像我在下面的螢幕截圖中所做的那樣。關於應用程式位置設置,假設您計劃透過網路或行動應用程式或其他網路服務與 API 進行交互,那麼您需要選擇「無需儲存」。

How to Create a MySQL REST API in asy Steps

按下儲存按鈕,您將返回到應用程式索引螢幕,可以在其中複製新的 API 金鑰!將密鑰複製到文字檔案中以供以後參考。

4. 為 MySQL API 設定 CORS

在能夠從 DreamFactory 管理介面外部測試 API 之前,我們還有最後一個設定步驟。您需要為新 API 啟用 CORS(跨來源資源共用)。您可以在“配置”下拉清單中找到它並選擇“CORS”。出於演示目的,您可以設定預設的 CORS 設置,就像我在下面的螢幕截圖中所做的那樣,這將允許來自所有網路位址的 API 限制流量:

How to Create a MySQL REST API in asy Steps

5.測試MySQL REST API

產生 API、建立 API 金鑰和關聯角色並配置 CORS 後,您就可以開始透過客戶端與 API 互動了!我喜歡在 MacOS 上使用 Insomnia 進行 HTTP 測試,但另一個流行的解決方案是 Postman。

在下面的螢幕截圖中,我使用 Insomnia 透過 GET 請求聯繫 /api/v2/_table/employees 端點。

How to Create a MySQL REST API in asy Steps

回想一下,我們已鎖定此 API 金鑰,使其僅使用 GET 方法與 /api/v2/_table/employees/* 端點進行互動。那麼如果我們嘗試 POST 到這個表會發生什麼?傳回 401(未經授權)狀態碼,如下圖所示:

How to Create a MySQL REST API in asy Steps

How to Create a MySQL REST API in asy Steps

建立 MySQL API 的替代方法

顯然,DreamFactory 並不是唯一可用的解決方案。建立 MySQL REST API 的另一種方法是手動編碼,但它需要更長的時間並且更困難。手工製作 API 時還需要擔心其他問題,例如 API 安全性。以下是一些關於如何開始手動編碼下一個 API 的簡短提示。

1.安裝並設定一個Web伺服器,如Apache或Nginx,並在伺服器上安裝PHP和MySQL

建立 MySQL REST API 的第一步是設定一個 Web 伺服器,例如 Apache 或 Nginx,它將處理來自客戶端的傳入 HTTP 請求並以適當的內容進行回應。您還需要在伺服器上安裝 PHP,它是一種伺服器端腳本語言,可以與 MySQL 互動以檢索或儲存資料。最後,您需要安裝 MySQL,它是一個關聯式資料庫管理系統,可以儲存和管理表中的資料。設定好所有這些元件後,您就可以開始建立 REST API。

2. 建立 MySQL 資料庫和表格來儲存要透過 API 公開的資料。

資料庫是以結構化​​方式組織的相關資料的集合,例如具有列和行的表。 MySQL 是一種流行的關聯式資料庫管理系統,可讓您建立和管理資料庫和表格。

要在 MySQL 中建立資料庫,您可以使用 MySQL 命令列介面中的 CREATE DATABASE 命令或 phpMyAdmin 等工具。

3. 建立連接到資料庫並使用 SQL 查詢檢索資料的 PHP 腳本。

要從 PHP 連接到 MySQL 資料庫,您可以使用多種擴充功能之一,例如 MySQLi 或 PDO。建立連線後,您可以執行 SQL 查詢以從資料庫檢索資料。 SQL 查詢應該設計為檢索您想要透過 API 公開的數據,並且應該參數化以防止 SQL 注入攻擊。

從資料庫檢索資料後,您可以使用 PHP 的內建函數將其格式化為 JSON。 JSON 是一種輕量級的資料格式,易於解析,並且受到多種程式語言的支援。

4. 使用 PHP 資料物件 (PDO) 擴充以安全的方式準備和執行 SQL 語句,並取得結果。

PDO 是一個強大且靈活的擴展,它為存取 PHP 中的資料庫提供了一致的介面。 PDO可以與包括MySQL在內的多種資料庫驅動程式一起使用,並提供預先準備語句和參數綁定等功能,有助於防止SQL注入攻擊。

要將 PDO 與 MySQL 結合使用,您需要建立一個新的 PDO 物件並傳入資料庫的連線詳細資訊。然後,您可以使用prepare()方法準備SQL語句,使用bindParam()或bindValue()方法綁定任何參數,並使用execute()方法執行該語句。最後,您可以使用 fetch()、fetchAll() 或 fetchColumn() 等方法取得查詢結果。

5. 使用 json_encode() 函數將資料轉換為 JSON 格式,並使用適當的 HTTP 標頭(例如 Content-Type: application/json)將其輸出到客戶端。

json_encode() 函數是一個內建的 PHP 函數,可用來將資料轉換為 JSON 格式的字串。您可以將任何資料類型傳遞給函數,例如數組或對象,它將轉換為客戶端應用程式可以輕鬆使用的 JSON 字串。

取得 JSON 格式的字串後,您需要使用適當的 HTTP 標頭將其輸出到客戶端。在 PHP 中,您可以使用 header() 函數設定標頭,該函數可讓您指定有關回應的內容類型和其他元資料。例如,要輸出 JSON 數據,可以將 Content-Type header 設定為「application/json」。

透過以 JSON 格式輸出資料並設定適當的 HTTP 標頭,您可以確保客戶端應用程式可以輕鬆使用您的 REST API 並遵守標準 Web 約定。

6. 處理來自客戶端的 HTTP 請求

HTTP 請求是客戶端(例如網頁瀏覽器或行動應用程式)與 API 通訊以請求資料或執行其他操作的方式。要處理這些請求,您需要編寫可以處理請求並傳回適當回應的 PHP 程式碼。

PHP 提供了幾個可用來存取有關目前要求的資訊的函數,例如 $_SERVER、$_GET、$_POST 和 $_REQUEST。這些變數包含 HTTP 方法(例如 GET 或 POST)、URL 路徑以及任何查詢參數或請求正文資料等資訊。

為了處理不同類型的請求,您需要編寫 PHP 程式碼來分析傳入的資料並確定要採取的操作。例如,如果客戶端發出 GET 請求以從 API 檢索數據,您的程式碼可能會執行 SQL 查詢來檢索資料並將其作為 JSON 回應傳回。如果用戶端發出 POST 請求來建立新記錄,您的程式碼可能會將新資料插入 MySQL 資料庫並傳回成功訊息。

7. 實作錯誤處理和驗證,以確保 API 穩健且安全。

要在 API 中實現錯誤處理和驗證,您需要編寫可以檢測和回應錯誤並驗證使用者輸入的 PHP 程式碼。 PHP 提供了幾個可用於錯誤處理的內建函數,例如trigger_error() 或set_error_handler()。對於驗證,您可能需要使用正規表示式、PHP 篩選器或自訂驗證函數。

8. 將 API 部署到您的 Web 伺服器並使用 cURL 或 Postman 等工具進行測試。

要部署 API,您需要將 PHP 檔案和任何其他所需檔案(例如 CSS、JavaScript 或圖片)上傳到您的 Web 伺服器。根據您的 Web 伺服器配置,您可能需要修改 .htaccess 檔案以確保 API 正確路由。

部署 API 後,您可以使用 cURL 或 Postman 等工具進行測試。這些工具可讓您向 API 發送 HTTP 請求並檢查回應資料。您可以使用這些工具來測試不同類型的請求(例如 GET、POST、PUT 或 DELETE),測試錯誤處理和驗證,並確保 API 以正確的格式(例如 JSON 或 XML)返回正確的資料).

測試 API 時,注意效能、安全性和可用性非常重要。您應該在不同的條件下(例如高流量或慢速網路連線)測試您的 API,以確保其效能良好並保持穩定。您還應該測試您的 API 是否有安全漏洞(例如 SQL 注入或跨站點腳本),並確保它易於客戶使用和理解。

以下是一個簡單的 REST API 的範例 PHP 程式碼,用於從 MySQL 資料庫檢索資料:

How to Create a MySQL REST API in asy Steps

從這裡到哪裡?

無論你相信與否,我們只是觸及了 DreamFactory 可以為您做的事情的表面。如果您想了解我們的SQL Server、Oracle 或MongoDB 連接器的實際運作情況,或者想了解在不編寫任何程式碼的情況下將SOAP 服務轉換為REST 是多麼容易,為什麼不與我們的工程團隊一起安排演示呢!立即造訪 https://www.dreamfactory.com/products 並安排示範!

DreamFactory 支援的其他資料庫:

  • MongoDB
  • SQL Server
  • IBM DB2

如何透過 6 個簡單步驟建立 MySQL REST API 的貼文首次出現在 DreamFactory Software- 部落格上。

以上是如何透過簡單的步驟建立 MySQL REST API的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!