Hướng dẫn can i build api with php? - tôi có thể xây dựng api với php không?
Trong hướng dẫn này, tôi sẽ dạy bạn cách xây dựng API REST đơn giản với PHP và MySQL. Show
REST đã trở thành tiêu chuẩn thực tế khi tiếp xúc dữ liệu thông qua API và xây dựng các dịch vụ web. Trên thực tế, hầu hết các ứng dụng web ngày nay truy cập và hiển thị dữ liệu thông qua API REST. Với sự phổ biến của các khung phía trước có thể tiêu thụ API REST một cách dễ dàng, nó sẽ luôn luôn là một điểm cộng cho bạn nếu ứng dụng web của bạn phơi bày các API REST. Trong bài viết này, chúng tôi sẽ xây dựng một ứng dụng demo đơn giản, cho phép bạn tìm nạp danh sách người dùng từ cơ sở dữ liệu MySQL thông qua điểm cuối còn lại. Thiết lập bộ xươngTrong phần này, chúng tôi sẽ đi qua cấu trúc dự án. Hãy để một cái nhìn về cấu trúc sau. ├── Controller │ └── Api │ ├── BaseController.php │ └── UserController.php ├── inc │ ├── bootstrap.php │ └── config.php ├── index.php └── Model ├── Database.php └── UserModel.php Hãy để cố gắng hiểu cấu trúc dự án.
Vì vậy, đó là thiết lập cơ bản mà chúng tôi sẽ thực hiện trong phần còn lại của bài đăng. Tạo một cơ sở dữ liệu và các lớp mô hìnhTrong phần này, chúng tôi sẽ tạo một cơ sở dữ liệu và bảng người dùng. Chúng tôi cũng sẽ tạo ra các lớp mô hình cần thiết sẽ được sử dụng để tìm nạp người dùng từ cơ sở dữ liệu. Tạo cơ sở dữ liệu và bảng người dùngTạo cơ sở dữ liệu $CREATE DATABASE rest_api_demo;4 bằng cách thực thi lệnh sau trong thiết bị đầu cuối MySQL của bạn. (Truy cập cái này với lệnh $CREATE DATABASE rest_api_demo;5 từ dòng lệnh.) $CREATE DATABASE rest_api_demo; Bạn cũng có thể sử dụng một công cụ như phpmyadmin nếu bạn thích làm việc với cơ sở dữ liệu của mình theo cách đó. Khi cơ sở dữ liệu $CREATE DATABASE rest_api_demo;4 được tạo, hãy tiếp tục và tạo bảng $CREATE DATABASE rest_api_demo;7 bằng cách chạy các câu lệnh sau. $use rest_api_demo; $CREATE TABLE `users` ( `user_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(60) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `user_email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `user_status` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; Điều đó sẽ tạo bảng $CREATE DATABASE rest_api_demo;7 trong cơ sở dữ liệu $CREATE DATABASE rest_api_demo;4. Bạn cũng sẽ muốn điền vào bảng này với một vài bản ghi giả cho mục đích thử nghiệm. Chèn một vài hồ sơ, và bạn tốt để đi! Tạo các lớp mô hìnhTrong phần này, chúng tôi sẽ tạo ra các lớp mô hình cần thiết. Tạo tệp mô hình/cơ sở dữ liệu.php với các nội dung sau.Model/Database.php file with the following contents. connection = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_DATABASE_NAME); if ( mysqli_connect_errno()) { throw new Exception("Could not connect to database."); } } catch (Exception $e) { throw new Exception($e->getMessage()); } } public function select($query = "" , $params = []) { try { $stmt = $this->executeStatement( $query , $params ); $result = $stmt->get_result()->fetch_all(MYSQLI_ASSOC); $stmt->close(); return $result; } catch(Exception $e) { throw New Exception( $e->getMessage() ); } return false; } private function executeStatement($query = "" , $params = []) { try { $stmt = $this->connection->prepare( $query ); if($stmt === false) { throw New Exception("Unable to do prepared statement: " . $query); } if( $params ) { $stmt->bind_param($params[0], $params[1]); } $stmt->execute(); return $stmt; } catch(Exception $e) { throw New Exception( $e->getMessage() ); } } } Đây là lớp lớp truy cập cơ sở dữ liệu, cho phép chúng tôi thiết lập kết nối với cơ sở dữ liệu MySQL. Ngoài thiết lập kết nối, nó còn chứa các phương thức chung như $use rest_api_demo; $CREATE TABLE `users` ( `user_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(60) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `user_email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `user_status` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;0 và $use rest_api_demo; $CREATE TABLE `users` ( `user_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(60) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `user_email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `user_status` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;1 cho phép chúng tôi chọn các bản ghi từ cơ sở dữ liệu. Chúng tôi đã giành chiến thắng sử dụng lớp $use rest_api_demo; $CREATE TABLE `users` ( `user_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(60) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `user_email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `user_status` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;2 trực tiếp; Thay vào đó, chúng tôi sẽ tạo các lớp mô hình tương ứng mở rộng lớp $use rest_api_demo; $CREATE TABLE `users` ( `user_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(60) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `user_email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `user_status` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;2 để truy cập cơ sở dữ liệu MySQL cơ bản. Tiếp theo, hãy để Lừa tạo lớp mô hình/usermodel.php với các nội dung sau.Model/UserModel.php class with the following contents. select("SELECT * FROM users ORDER BY user_id ASC LIMIT ?", ["i", $limit]); } } Điều quan trọng cần lưu ý là lớp $use rest_api_demo; $CREATE TABLE `users` ( `user_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(60) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `user_email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `user_status` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;4 mở rộng lớp ____22. Ngoài ra, nó còn chứa phương thức $use rest_api_demo; $CREATE TABLE `users` ( `user_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(60) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `user_email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `user_status` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;6, cho phép chúng tôi chọn người dùng từ cơ sở dữ liệu MySQL. Nó bắt buộc phải vượt qua tham số $use rest_api_demo; $CREATE TABLE `users` ( `user_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(60) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `user_email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `user_status` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;7, điều này đảm bảo rằng nó đã giành được tất cả các bản ghi cùng một lúc. Tất nhiên, bạn có thể xác định nhiều phương thức hơn trong lớp $use rest_api_demo; $CREATE TABLE `users` ( `user_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(60) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `user_email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `user_status` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;4 theo yêu cầu của bạn. Chúng tôi sẽ giữ mọi thứ đơn giản trong bối cảnh của hướng dẫn này. Vì vậy, bây giờ chúng tôi có các lớp cơ sở dữ liệu và mô hình của chúng tôi được thiết lập. Trong phần tiếp theo, chúng tôi sẽ thấy cách tạo bộ điều khiển và các tệp còn lại trong ứng dụng demo của chúng tôi. Tạo các thành phần lớp ứng dụngTrong phần này, chúng tôi sẽ tạo các tệp còn lại cần thiết cho ứng dụng demo của chúng tôi hoạt động. Thư mục Incinc DirectoryĐối với người mới bắt đầu, chúng tôi sẽ tạo các tệp cấu hình cần thiết. Tạo tệp inc/config.php với các nội dung sau.inc/config.php file with the following contents.
|