API cơ sở dữ liệu PHP
PHP REST API được sao lưu bằng cơ sở dữ liệu MySQL là một sơ đồ rất phổ biến của ứng dụng di động Doanh nghiệp. Khi kịch bản yêu cầu dữ liệu được lưu trữ tập trung thì nên sử dụng kiến trúc này. Mặt khác, cơ sở dữ liệu cục bộ trong điện thoại di động có thể được sử dụng để lưu trữ và truy xuất thông tin Show
Trong hướng dẫn này, chúng tôi đang tạo một dịch vụ PHP RESTful để đọc dữ liệu từ bảng cơ sở dữ liệu (MySQL). Ngoài ra, tôi đang cung cấp mã dự án Android mẫu để gọi dịch vụ RESTful này Trong hướng dẫn trước, chúng ta đã thấy những kiến thức cơ bản về các dịch vụ RESTful của PHP. Tôi thực sự khuyên bạn nên xem qua nó trước khi tiếp tục hướng dẫn này Trong ví dụ này, chúng tôi đang gọi PHP REST API từ một ứng dụng Android. Ở phía máy chủ, dịch vụ API đọc dữ liệu từ cơ sở dữ liệu và gửi phản hồi ở định dạng JSON. Sau khi nhận được phản hồi, ứng dụng Android sẽ hiển thị hàng mục trong ListView bằng cách phân tích cú pháp dữ liệu JSON Nếu bạn muốn xem cách xử lý dữ liệu JSON bằng PHP với các ghi chú và ví dụ chi tiết, thì bài viết được liên kết sẽ là một hướng dẫn hoàn hảo về điều này PHP REST API đọc bản ghi MySQLChúng tôi có một bảng cơ sở dữ liệu chứa danh sách tên kiểu điện thoại di động. API REST của chúng tôi tìm nạp danh sách tên di động từ cơ sở dữ liệu và gửi phản hồi dưới dạng JSON. API REST này chứa ba phần. Đây là, bộ điều khiển REST, lớp dịch vụ và DAO RestController. phpCuộc gọi REST dừng trên bộ điều khiển này. Nó gọi dịch vụ để chuẩn bị phản hồi
Điện Thoại Di Động. phpLớp dịch vụ gọi hàm DAO để đọc dữ liệu từ bảng cơ sở dữ liệu. Vì ứng dụng của chúng tôi yêu cầu dữ liệu kiểu JSON, nên lớp dịch vụ sẽ chuẩn bị phản hồi ở định dạng JSON
di động. php
Ứng dụng Android – Truy cập API PHP RESTTrong ví dụ này, chúng tôi đang tạo một ứng dụng Android đơn giản để truy cập dữ liệu MySQL bằng API REST trong PHP. Chúng tôi đang có một phần tử ListView trong MainActivity Chúng tôi đang tạo Bộ điều hợp ListView để thêm danh sách các mục được trả về dưới dạng phản hồi API. Sau đó, chúng tôi đặt bộ điều hợp này thành phần tử ListView để hiển thị các hàng dữ liệu MySQL Khi khởi chạy MainActivity, chúng tôi gọi AsyncTask để truy cập PHP MySQL REST API. Chúng tôi sử dụng lớp “HTTPConnectionRequest” để đặt thông số và gửi yêu cầu tới API. Đoạn mã sau hiển thị lớp MainActivity API REST là xương sống của phát triển web hiện đại. Hầu hết các ứng dụng web ngày nay được phát triển dưới dạng các ứng dụng một trang trên giao diện người dùng, được kết nối với các API phụ trợ được viết bằng nhiều ngôn ngữ khác nhau. Có rất nhiều framework tuyệt vời có thể giúp bạn xây dựng REST API một cách nhanh chóng. Nền tảng API của Laravel/Lumen và Symfony là những ví dụ được sử dụng thường xuyên nhất trong hệ sinh thái PHP. Họ cung cấp các công cụ tuyệt vời để xử lý yêu cầu và tạo phản hồi JSON với mã trạng thái HTTP chính xác. Chúng cũng giúp dễ dàng xử lý các vấn đề phổ biến như xác thực/ủy quyền, xác thực yêu cầu, chuyển đổi dữ liệu, phân trang, bộ lọc, điều chỉnh tốc độ, điểm cuối phức tạp với tài nguyên phụ và tài liệu API Bạn chắc chắn không cần một framework phức tạp để xây dựng một API đơn giản nhưng an toàn. Trong bài viết này, tôi sẽ chỉ cho bạn cách xây dựng một API REST đơn giản trong PHP từ đầu. Chúng tôi sẽ làm cho API trở nên an toàn bằng cách sử dụng Okta làm nhà cung cấp ủy quyền của chúng tôi và triển khai Luồng thông tin xác thực của khách hàng. Okta là một dịch vụ API cho phép bạn tạo, chỉnh sửa và lưu trữ an toàn tài khoản người dùng và dữ liệu tài khoản người dùng, đồng thời kết nối chúng với một hoặc nhiều ứng dụng Có các luồng xác thực khác nhau trong OAuth 2. 0, tùy thuộc vào việc ứng dụng khách là công khai hay riêng tư và liệu có người dùng tham gia hay chỉ giao tiếp giữa máy với máy. Luồng thông tin xác thực ứng dụng khách phù hợp nhất cho giao tiếp giữa các máy trong đó ứng dụng khách ở chế độ riêng tư (và có thể được tin cậy để giữ bí mật). Ở cuối bài, tôi sẽ chỉ cho bạn cách xây dựng một ứng dụng khách thử nghiệm. Mục lục
Tạo khung dự án PHP cho API REST của bạnChúng tôi sẽ bắt đầu bằng cách tạo một thư mục 9 và một tệp 0 đơn giản trong thư mục trên cùng chỉ với một phụ thuộc (hiện tại). thư viện DotEnv sẽ cho phép chúng tôi giữ chi tiết xác thực Okta của mình trong tệp 1 bên ngoài kho lưu trữ mã của chúng tôi 0
Chúng tôi cũng đã định cấu hình trình tải tự động PSR-4 sẽ tự động tìm kiếm các lớp PHP trong thư mục 9Chúng tôi có thể cài đặt các phụ thuộc của mình ngay bây giờ
Bây giờ chúng tôi có một thư mục 4 và phần phụ thuộc DotEnv đã được cài đặt (chúng tôi cũng có thể sử dụng trình tải tự động của mình để tải các lớp của chúng tôi từ 9 mà không cần lệnh gọi 6)Hãy tạo một tệp 7 cho dự án của chúng tôi với hai dòng trong đó, vì vậy thư mục 4 và tệp 1 cục bộ của chúng tôi sẽ bị bỏ qua
Tiếp theo, chúng tôi sẽ tạo một tệp 70 cho các biến xác thực Okta của chúng tôi 70
và một tệp 1 nơi chúng tôi sẽ điền thông tin chi tiết thực tế của mình từ tài khoản Okta của chúng tôi sau (nó sẽ bị Git bỏ qua vì vậy nó sẽ không kết thúc trong kho lưu trữ của chúng tôi)Chúng tôi sẽ cần một tệp 73 để tải các biến môi trường của chúng tôi (sau này, nó cũng sẽ thực hiện một số bước khởi động bổ sung cho dự án của chúng tôi) 73 7Định cấu hình cơ sở dữ liệu cho PHP REST API của bạnChúng tôi sẽ sử dụng MySQL để cung cấp năng lượng cho API đơn giản của chúng tôi. Chúng tôi sẽ tạo cơ sở dữ liệu và người dùng mới cho ứng dụng của chúng tôi 4API còn lại của chúng tôi sẽ chỉ xử lý một thực thể duy nhất. Người, với các trường sau. 75, 76, 77, 78, 79. Nó sẽ cho phép chúng tôi xác định mọi người và tối đa hai phụ huynh cho mỗi người (liên kết đến các bản ghi khác trong cơ sở dữ liệu của chúng tôi). Hãy tạo bảng cơ sở dữ liệu trong MySQL 0Chúng tôi sẽ thêm các biến kết nối cơ sở dữ liệu vào tệp 70 của chúng tôi 70 3Sau đó, chúng tôi sẽ nhập thông tin đăng nhập địa phương của mình vào. env (không được lưu trữ trong repo, nhớ chứ?) 1 5Bây giờ chúng ta có thể tạo một lớp để giữ kết nối cơ sở dữ liệu của mình và thêm phần khởi tạo kết nối vào bootstrap của chúng ta. tập tin php 43 7 73 (bản đầy đủ) 0Hãy tạo một tệp 45 để tạo bảng 46 của chúng ta và chèn một số bản ghi vào đó để kiểm tra 45 1Cơ sở dữ liệu của chúng tôi đã hoàn tất. Nếu bạn muốn đặt lại nó, chỉ cần thả bảng 48 vào MySQL rồi chạy 49 (Tôi không thêm câu lệnh drop vào seeder để đề phòng chạy nhầm)Thêm một lớp cổng cho bảng ngườiCó nhiều mẫu để làm việc với cơ sở dữ liệu trong ngữ cảnh hướng đối tượng, từ thực thi đơn giản các câu lệnh SQL trực tiếp khi cần (theo cách thủ tục) đến các hệ thống ORM phức tạp (hai trong số các lựa chọn ORM phổ biến nhất trong PHP là Eloquent và Doctrine). Đối với API đơn giản của chúng tôi, cũng nên sử dụng một mẫu đơn giản, vì vậy chúng tôi sẽ sử dụng Cổng bảng. Chúng tôi thậm chí sẽ bỏ qua việc tạo một lớp 46 (như mẫu cổ điển sẽ yêu cầu) và chỉ đi với lớp 01. Chúng tôi sẽ triển khai các phương thức để trả về tất cả các bản ghi, trả về một người cụ thể và thêm/cập nhật/xóa một người 02 2Rõ ràng, trong một hệ thống sản xuất, bạn sẽ muốn xử lý các ngoại lệ một cách duyên dáng hơn thay vì chỉ thoát ra với một thông báo lỗi Dưới đây là một số ví dụ về việc sử dụng cổng 3Triển khai API PHP RESTChúng tôi sẽ triển khai API REST ngay bây giờ với các điểm cuối sau 4Chúng tôi sẽ tạo một tệp 03 để đóng vai trò là bộ điều khiển phía trước và xử lý các yêu cầu, đồng thời tạo một tệp 04 để xử lý các điểm cuối API (được gọi từ bộ điều khiển phía trước sau khi xác thực URI) 05 5 04 6Bạn có thể kiểm tra API bằng công cụ như Postman. Đầu tiên, vào thư mục dự án và khởi động máy chủ PHP 7Sau đó kết nối với 07 bằng Postman và gửi yêu cầu http. Ghi chú. khi thực hiện các yêu cầu PUT và POST, hãy đảm bảo đặt loại Nội dung thành 08, sau đó dán tải trọng ở định dạng JSON và đặt loại nội dung thành JSON (application/json)Bảo mật API PHP REST của bạn bằng OAuth 2. 0Chúng tôi sẽ sử dụng Okta làm máy chủ ủy quyền của mình và chúng tôi sẽ triển khai Luồng thông tin xác thực của khách hàng. Luồng được đề xuất để xác thực giữa các máy khi máy khách ở chế độ riêng tư và hoạt động như thế này. Ứng dụng khách giữ ID khách hàng và Bí mật; Trước khi bắt đầu, bạn sẽ cần một tài khoản nhà phát triển Okta miễn phí. Cài đặt Okta CLI và chạy 09 để đăng ký tài khoản mới. Nếu bạn đã có tài khoản, hãy chạy 30. Sau đó, chạy 31. Chọn tên ứng dụng mặc định hoặc thay đổi tên khi bạn thấy phù hợpOkta CLI làm gì?Okta CLI sẽ tạo OAuth 2. 0 Ứng dụng dịch vụ trong Okta Org của bạn. Bạn sẽ thấy đầu ra như sau khi hoàn thành 8Chạy 32 (hoặc 33 trên Windows) để xem nhà phát hành và thông tin đăng nhập cho ứng dụng của bạn 9Tên miền Okta của bạn là phần đầu tiên của tổ chức phát hành của bạn, trước 34GHI CHÚ. Bạn cũng có thể sử dụng Bảng điều khiển dành cho quản trị viên Okta để tạo ứng dụng của mình. Xem Tạo ứng dụng dịch vụ để biết thêm thông tin Đây là những thông tin đăng nhập mà ứng dụng khách của bạn sẽ cần để xác thực. Đối với ví dụ này, mã máy khách và máy chủ sẽ nằm trong cùng một kho lưu trữ, vì vậy chúng tôi cũng sẽ thêm các thông tin xác thực này vào tệp 1 của mình (đảm bảo thay thế 36 và 37 bằng các giá trị từ trang này)Thêm vào 70 0Thêm các khóa và giá trị này vào 1 1Đăng nhập vào Bảng điều khiển dành cho quản trị viên Okta (mẹo. chạy 30, mở URL trong trình duyệt). Điều hướng đến Bảo mật> API. Chọn Máy chủ ủy quyền mặc định của bạn. Nhấp vào biểu tượng Chỉnh sửa, chuyển đến tab Phạm vi và nhấp vào Thêm phạm vi để thêm phạm vi cho API REST. Đặt tên cho nó là 51 và chọn Đặt làm phạm vi mặc địnhThêm phạm vi vào 70 2và khóa có giá trị là 1 3Thêm xác thực vào PHP REST API của bạnChúng tôi sẽ sử dụng thư viện Okta JWT Verifier. Nó yêu cầu thư viện JWT (chúng tôi sẽ sử dụng 54) và thư viện tuân thủ PSR-7 (chúng tôi sẽ sử dụng 55). Chúng tôi sẽ cài đặt mọi thứ thông qua nhà soạn nhạc 4Bây giờ, chúng tôi có thể thêm mã ủy quyền vào bộ điều khiển phía trước của mình (nếu sử dụng khung, thay vào đó, chúng tôi sẽ thực hiện việc này trong phần mềm trung gian) 05 (bản full cho rõ) 5Xây dựng Ứng dụng khách mẫu (Tập lệnh dòng lệnh) để kiểm tra API PHP RESTTrong phần này, chúng tôi sẽ thêm một ứng dụng khách đơn giản (tập lệnh dòng lệnh sử dụng curl) để kiểm tra API REST. Chúng tôi sẽ tạo một tệp php mới 'public/clients. php’ với quy trình rất đơn giản. nó sẽ truy xuất các chi tiết Okta (nhà phát hành, phạm vi, id ứng dụng khách và bí mật) từ. env, thì nó sẽ lấy mã thông báo truy cập từ Okta và nó sẽ chạy các lệnh gọi API để nhận tất cả người dùng và nhận một người dùng cụ thể (chuyển mã thông báo truy cập Okta trong tiêu đề Ủy quyền) 57 6Bạn có thể chạy ứng dụng từ dòng lệnh bằng cách vào thư mục 58 và chạy 7(Đừng quên khởi động máy chủ nếu bạn chưa có. ) 7Đó là nó Tìm hiểu thêm về PHP, API REST an toàn và OAuth 2. 0 Quy trình xác thực khách hàngBạn có thể tìm thấy tất cả mã từ ví dụ này trên GitHub, trong kho lưu trữ oktadeveloper/okta-php-core-rest-api-example Nếu bạn muốn tìm hiểu sâu hơn về các chủ đề được đề cập trong bài viết này, các tài nguyên sau đây là điểm khởi đầu tuyệt vời
Giống như những gì bạn đã học ngày hôm nay? Làm cách nào để lấy dữ liệu từ cơ sở dữ liệu bằng API trong PHP?php // Bao gồm các lớp Yêu cầu và Phản hồi $url = 'https. //api. exoclick. com/v2/đăng nhập';
Bạn có thể viết API bằng PHP không?Có nhiều framework tuyệt vời có thể giúp bạn xây dựng API REST một cách nhanh chóng. Nền tảng API của Laravel/Lumen và Symfony là những ví dụ được sử dụng thường xuyên nhất trong hệ sinh thái PHP . Họ cung cấp các công cụ tuyệt vời để xử lý yêu cầu và tạo phản hồi JSON với mã trạng thái HTTP chính xác.
API PHP là gì?PHP là ngôn ngữ kịch bản nhúng HTML phía máy chủ có thể được sử dụng để tạo các trang Web động . Nó có sẵn cho hầu hết các hệ điều hành và máy chủ Web và có thể truy cập hầu hết các cơ sở dữ liệu phổ biến, bao gồm cả MySQL.
API có thể kết nối với cơ sở dữ liệu không?Mỗi tổ chức cung cấp dịch vụ trên nhiều hệ điều hành như ios, android, được tích hợp trên một cơ sở dữ liệu duy nhất. Do đó, họ cũng sử dụng API để tìm nạp dữ liệu từ cơ sở dữ liệu cho nhiều ứng dụng . |