接下來,系統會要求您輸入一些基本信息,包括名稱、標簽和描述,這些信息會出現在屏幕截圖的下方區域。其中,標簽和描述主要用于管理界面中的參考和識別,而名稱則具有特別的重要性,因為它將作為 API URL 的一部分,稍后您就會看到這一點。

定義 MySQL API 命名空間

最后,請點擊“Config”選項卡。在這個頁面上,您需要填寫數據庫的連接憑據(請參考下面的屏幕截圖)。這些信息對于您來說可能并不陌生;您需要提供數據庫的主機名、用戶名、密碼以及要連接的數據庫名稱。

此外,系統還允許您選擇性地指定其他配置選項,例如驅動程序參數、時區設置以及緩存偏好等。不過,在本教程中,我將僅關注必填字段,并保留所有可選功能為默認設置。

插入 MySQL API 憑據

獲取到所需的數據庫連接憑據后,您只需點擊屏幕底部的“Save”按鈕,令人難以置信的是,REST API 就已經被成功創建了!

2. 查看 Swagger 文檔

在創建 API 的同時,DreamFactory 還會為您的 API 自動生成一套全面的交互式 Swagger 文檔。要訪問這些文檔,您只需點擊管理界面頂部的“API Docs”選項卡,然后按照名稱選擇您剛剛創建的新服務。一旦進入,您將發現多達44個終端節點可供使用,這些節點支持執行存儲過程、進行CRUD(創建、讀取、更新、刪除)操作、查詢視圖等多種功能。值得注意的是,以下屏幕截圖僅僅展示了新生成的 MySQL REST API 端點中的一小部分!

REST API 端點

3. 創建角色和 API 密鑰

DreamFactory 所生成的所有 API 都至少會受到 API 密鑰的自動保護。在身份驗證方面,您可以選擇使用基本身份驗證、單點登錄(SSO)或目錄服務(如 LDAP 和 Active Directory)。此外,您還可以將每個 API 密鑰和/或用戶與一個特定的“角色”相關聯,這個角色將精確決定用戶能夠訪問哪些服務。更進一步,您還可以將交互限制在特定的數據庫表或表集合、特定的端點,甚至是對允許的 HTTP 方法進行限制。

在 API 的開發和集成過程中,保護那些代表 API 與 MySQL 數據庫進行交互的用戶是至關重要的。

現在,讓我們以一個實例來說明如何創建一個新角色,這個角色將關聯的 API 密鑰限制為在新創建的 MySQL API 中以只讀方式與單個表進行交互。為此,請按照以下步驟操作:首先導航到“Roles”選項卡,并點擊“Create”按鈕。接下來,您將看到類似下面屏幕截圖中的界面。在截圖中,我已經為這個角色指定了一個名稱和描述,并通過勾選“Active”(活動)復選框來激活它

然后,請點擊“Access”選項卡。在這里,您可以定義角色能夠執行的操作。在下面的屏幕截圖中,您可以看到我已經將角色的權限限制為只能與 MySQL 服務交互,并且在該服務中,角色僅能通過 GET 方法與“_table/employees*”終端節點進行交互。一切已鎖定,確保安全!

屏幕截圖 2024-06-18 在 3.39.37 下午

單擊“Save”按鈕以保存所創建的角色。接下來,我們的任務是創建一個新的 API 密鑰,并將這個密鑰與我們剛剛創建的角色進行關聯。為了完成這一步,請按照以下操作進行:首先,點擊位于 API 類型下拉列表下方的“API 密鑰”選項卡;其次,在 API 密鑰列表中選擇一個(如果是首次創建,則直接操作即可);然后,點擊“+”按鈕以新增一個 API 密鑰。在新增 API 密鑰的界面中,為您的應用程序分配一個具有描述性的名稱和詳細的描述,確保將其狀態設置為“Active”。然后,在角色分配部分,選擇我們之前為 MySQL 設置的默認角色,就像我在下面的屏幕截圖中展示的那樣。

關于應用程序位置設置,如果您打算通過 Web 應用、移動應用或其他 Web 服務來與 API 進行交互,那么您應該選擇“無需存儲”這一選項。這意味著 API 密鑰將不會與特定的設備或位置進行綁定,從而提供了更大的靈活性。

API 密鑰 API 應用程序

點擊“Save”按鈕后,您將會被帶回到 Apps 的索引頁面。在這個頁面上,您將能夠看到剛剛創建的新 API 密鑰。為了方便日后使用,建議您將這個密鑰復制到文本文件中保存起來!

4. 為您的 MySQL API 配置 CORS

在能夠從 DreamFactory 管理界面外部成功測試 API 之前,我們還需要完成一個關鍵的配置步驟,那就是為新 API 啟用 CORS(跨域資源共享)。為了操作方便,您可以選擇使用默認的 CORS 設置,就像我在下面的屏幕截圖中所展示的那樣。這樣的設置將允許來自所有網絡地址的 API 請求通過,從而方便您進行測試和集成工作。

API 密鑰

5. 測試 MySQL REST API

完成 API 的生成、API 密鑰的創建與角色的關聯,以及 CORS 的配置之后,您就可以著手通過客戶端與 API 進行交互了!我個人在 MacOS 系統上傾向于使用 Insomnia 來進行 HTTP 測試,當然,Postman 也是另一個廣受歡迎的選擇。

在以下的屏幕截圖中,我展示了如何使用 Insomnia 發起一個 GET 請求,以訪問 /api/v2/_table/employees 這個終端節點。

值得注意的是,我們已經為此 API 密鑰設置了權限限制,即僅允許使用 GET 方法與 /api/v2/_table/employees/* 端點進行交互。因此,如果我們嘗試通過 POST 方法向該表發送數據,將會收到一個 401(未授權)狀態碼的響應,正如以下屏幕截圖所展示的那樣。

創建 MySQL API 的其他途徑

顯然,DreamFactory 并非創建 MySQL REST API 的唯一選擇。盡管手動編碼的方式耗時更長且難度更大,但它仍然是構建此類 API 的另一種可行方法。然而,在手動開發 API 的過程中,開發者還需關注 API 的安全性等其他問題。以下是一些關于如何著手手動編寫 API 的簡要建議。

1.安裝并配置 Web 服務器、PHP 及 MySQL

構建 MySQL REST API 的首要步驟是搭建一個 Web 服務器環境。您可以選擇 Apache 或 Nginx 等 Web 服務器來處理客戶端的 HTTP 請求,并返回相應的內容作為響應。同時,您還需要在服務器上安裝 PHP,這是一種流行的服務器端腳本語言,能夠與 MySQL 數據庫進行交互,以實現數據的檢索或存儲。此外,MySQL 作為關系型數據庫管理系統,能夠在表中存儲和管理數據。當這些組件全部安裝并配置完畢后,您就可以開始著手構建 REST API 了。

2.  設計并構建 MySQL 數據庫與表,以存儲通過 API 公開的數據

數據庫是數據的集合,這些數據以結構化的方式(如包含列和行的表)進行組織。MySQL 作為一種流行的關系數據庫管理系統,允許用戶創建并管理這些數據庫和表。

在 MySQL 中新建數據庫,您可以選擇使用 MySQL 命令行界面執行 CREATE DATABASE 命令,或者借助 phpMyAdmin 等工具來完成。

3.  編寫 PHP 腳本以連接數據庫并執行 SQL 查詢

為了從 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 格式,并通過適當的 HTTP 頭輸出到客戶端

json_encode() 是 PHP 的一個內置函數,它能夠將數據轉換為 JSON 格式的字符串。您可以向該函數傳遞任何數據類型(例如數組或對象),它將被轉換成 JSON 字符串,這種格式非常便于客戶端應用程序進行解析和使用。

在獲得 JSON 字符串后,您需要通過設置適當的 HTTP 頭來將其輸出到客戶端。在 PHP 中,這可以通過 header() 函數來實現,該函數允許您指定內容類型和其他有關響應的元數據。例如,為了輸出 JSON 數據,您應該將 Content-Type 頭設置為 "application/json"

通過將數據以 JSON 格式輸出,并設置正確的 HTTP 頭,您可以確保客戶端應用程序能夠輕松地使用 REST API,并遵循標準的 Web 通信規范。

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

HTTP 請求是客戶端(例如,Web 瀏覽器或移動應用)與您所構建的 API 進行數據請求或執行其他操作的主要通信手段。為了妥善處理這些請求,您需要編寫 PHP 代碼,使其能夠接收請求并返回相應的響應。

PHP 提供了一系列函數,幫助您獲取當前請求的相關信息。例如,$_SERVER 變量包含了 HTTP 方法(GET、POST 等)、URL 路徑、查詢參數以及請求體數據等關鍵信息。同時,$_GET 和 $_POST 數組則分別用于存儲 GET 和 POST 請求中的參數。

在處理不同類型的請求時,您需要編寫相應的 PHP 代碼,以分析傳入的數據并確定執行的操作。例如,若客戶端通過 GET 請求從 API 獲取數據,您的代碼可能會執行 SQL 查詢來檢索數據,并將其作為 JSON 格式的響應返回。若客戶端通過 POST 請求創建新記錄,您的代碼則可能會將新數據插入 MySQL 數據庫,并返回操作成功的消息。

7. 強化錯誤處理與驗證,確保 API 的穩健與安全

在 API 中實施有效的錯誤處理和驗證至關重要,這要求您編寫能夠檢測并響應錯誤,同時驗證用戶輸入的 PHP 代碼。PHP 提供了多個內置函數,助力您進行錯誤處理,例如 trigger_error() 用于觸發一個用戶級別的錯誤/警告/通知信息,而 set_error_handler() 則允許您設置一個用戶自定義的錯誤處理函數。

在驗證方面,您可能需要借助正則表達式、PHP 過濾器或自定義驗證函數來確保用戶輸入的數據符合預期格式和范圍。通過實施嚴格的錯誤處理和驗證機制,您可以顯著提升 API 的穩健性和安全性。

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 注入或跨站腳本攻擊),并確保 API 的設計便于客戶端使用與理解。

下面是一個從 MySQL 數據庫檢索數據的簡單 REST API 的示例 PHP 代碼:

原文鏈接:https://blog.dreamfactory.com/create-a-mysql-rest-api-in-minutes-using-dreamfactory

熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
3000+提示詞助力AI大模型
和專業工程師共享工作效率翻倍的秘密
返回頂部
上一篇
為什么API開發對現代應用至關重要?
下一篇
掌握合約優先API開發:關鍵策略和優勢
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
欧美一级生活片| 91日韩在线专区| 亚洲午夜视频在线观看| 日韩av电影免费观看高清完整版在线观看| 国产成人精品1024| 日韩一区二区三区av| 一区二区三区四区精品在线视频| 风间由美一区二区三区在线观看 | 久久国产精品第一页| 欧美性色黄大片| 亚洲国产一区二区a毛片| 在线亚洲+欧美+日本专区| 欧美日韩一区在线观看| 洋洋av久久久久久久一区| 色婷婷久久久综合中文字幕| 亚洲精品视频自拍| 欧美亚日韩国产aⅴ精品中极品| 欧美bbbbb| 久久人人爽人人爽| 成人午夜大片免费观看| 最新欧美精品一区二区三区| 日韩经典中文字幕一区| 久久久精品2019中文字幕之3| 成人性色生活片免费看爆迷你毛片| 日本一区二区三区高清不卡 | 国产欧美日韩另类视频免费观看 | 欧美三区在线视频| 久久综合网色—综合色88| 国产一区二区三区免费观看| 亚洲视频资源在线| 欧美精品一级二级| 亚洲制服丝袜在线| 国产日韩欧美精品一区| 在线视频国内自拍亚洲视频| 青娱乐精品视频| 欧美国产一区二区| 欧美sm美女调教| 91小视频在线观看| 久久se这里有精品| 亚洲激情自拍视频| 精品精品国产高清a毛片牛牛 | 亚洲成av人综合在线观看| 久久夜色精品一区| 欧美人与z0zoxxxx视频| 国内精品久久久久影院色| 一区二区三区精品在线观看| 久久蜜桃一区二区| 欧美日韩国产综合视频在线观看| 一本在线高清不卡dvd| 国产成人精品免费在线| 久久99久久精品欧美| 亚洲线精品一区二区三区| 中文字幕免费观看一区| 精品久久一区二区| 欧美精品xxxxbbbb| 91精品国产日韩91久久久久久| 欧美色手机在线观看| 欧美精品久久久久久久久老牛影院| 欧美日本精品一区二区三区| 日韩一级片在线观看| 精品成a人在线观看| 精品国产乱码久久久久久免费| 精品日韩一区二区三区| 欧美tickling网站挠脚心| 精品国偷自产国产一区| 国产情人综合久久777777| 国产精品理论在线观看| 成人免费在线观看入口| 亚洲一区二区欧美| 美女视频黄久久| 国产不卡高清在线观看视频| 91蜜桃视频在线| 3d成人h动漫网站入口| 久久久午夜精品理论片中文字幕| 国产精品免费aⅴ片在线观看| 一区二区三区免费观看| 日韩国产精品久久久久久亚洲| 久久国产乱子精品免费女| www.亚洲色图.com| 在线播放一区二区三区| 国产精品夫妻自拍| 无吗不卡中文字幕| 成人在线一区二区三区| 337p亚洲精品色噜噜噜| 自拍av一区二区三区| 久久91精品久久久久久秒播| 欧美在线综合视频| 国产欧美日韩三级| 免费成人在线影院| 91免费国产在线| 国产日韩影视精品| 免费日韩伦理电影| 本田岬高潮一区二区三区| 精品国免费一区二区三区| 亚洲第一综合色| www.欧美色图| 91精品国产综合久久精品app| 中文字幕一区二区三中文字幕| 久草这里只有精品视频| 91超碰这里只有精品国产| 亚洲激情图片小说视频| 99久久精品国产麻豆演员表| 久久精品一二三| 国产伦精品一区二区三区在线观看| 91精品国产综合久久福利软件 | 亚洲夂夂婷婷色拍ww47| 色综合中文字幕| 亚洲天堂精品视频| 99re成人在线| 亚洲高清不卡在线| 欧美色倩网站大全免费| 亚洲一区二区三区爽爽爽爽爽| 色综合视频在线观看| 亚洲精品欧美专区| 色哟哟国产精品| 艳妇臀荡乳欲伦亚洲一区| 欧美专区日韩专区| 天天色天天操综合| 欧美变态凌虐bdsm| 国产一区福利在线| 国产午夜精品一区二区三区视频 | 亚洲精品一区二区三区香蕉| 国产一本一道久久香蕉| 国产亚洲人成网站| 不卡电影一区二区三区| 亚洲日本青草视频在线怡红院| 欧美在线免费播放| 免费成人你懂的| 久久久国产精品不卡| 成人avav在线| 日韩福利电影在线| 国产精品视频九色porn| 色婷婷国产精品| 老色鬼精品视频在线观看播放| 国产精品妹子av| 精品黑人一区二区三区久久| 色综合久久中文字幕| 蜜乳av一区二区三区| 国产精品嫩草影院com| 欧美日韩午夜在线视频| 国产精品资源站在线| 亚洲午夜免费视频| 国产日韩欧美一区二区三区综合| 91免费小视频| 国产尤物一区二区| 午夜精品久久久久久久99樱桃 | 777午夜精品免费视频| 国产精品一级片| 亚洲成人免费在线| 国产精品二区一区二区aⅴ污介绍| 777午夜精品免费视频| 91激情五月电影| 成人免费看视频| 国产老妇另类xxxxx| 天堂va蜜桃一区二区三区 | 在线看日本不卡| 不卡av在线免费观看| 久久91精品久久久久久秒播| 日本亚洲欧美天堂免费| 亚洲一区二区三区视频在线| 自拍av一区二区三区| 国产精品麻豆网站| 亚洲国产精品ⅴa在线观看| 欧美成人伊人久久综合网| 欧美日韩三级一区二区| 欧美性猛交一区二区三区精品| 91玉足脚交白嫩脚丫在线播放| 国产激情视频一区二区在线观看| 久久精品国产亚洲一区二区三区 | 久久久久久影视| 日韩女优av电影| 日韩欧美不卡在线观看视频| 日韩一区二区三区四区| 91精品国产高清一区二区三区 | 国产精品一品二品| 国产一区二区三区不卡在线观看| 久色婷婷小香蕉久久| 国产夫妻精品视频| 国产福利一区在线观看| 国产经典欧美精品| 成人av先锋影音| 91国内精品野花午夜精品| 91香蕉视频黄| 欧美午夜在线一二页| 91精品欧美久久久久久动漫| 欧美一区二视频| 久久久久国产精品人| 国产精品久久久一区麻豆最新章节| 国产亚洲一本大道中文在线| 中文字幕一区二区三区不卡在线 | 国产精品一区二区三区99| 成人精品鲁一区一区二区| 91丨九色丨黑人外教| 欧美在线小视频| 精品久久一区二区三区| 国产精品毛片大码女人| 奇米影视在线99精品| 91丨porny丨在线| 精品国产污网站| 亚洲成国产人片在线观看|