Chèn API trong PHP

Trong hướng dẫn này, chúng ta sẽ tạo một dịch vụ web RESTful bằng PHP để thực hiện các thao tác CRUD. Trong các hướng dẫn trước, chúng ta đã xem các ví dụ về MySQL CRUD và để tạo dịch vụ web RESTful bằng PHP

Trong hướng dẫn này là một phần của loạt bài API REST, chúng ta hãy tìm hiểu về cách cung cấp API REST đơn giản cho các hoạt động CRUD [Tạo, Đọc, Cập nhật và Xóa]. Chúng tôi sẽ không sử dụng bất kỳ khung nào làm phụ thuộc, việc triển khai hoàn chỉnh sẽ sử dụng PHP lõi đơn giản

Hãy để chúng tôi xem về các quy ước tôi đã sử dụng trong ví dụ này. Các hành động ĐỌC và XÓA được thực thi bằng cách gửi từ khóa hành động trong URL và được phân tích cú pháp bằng phương thức GET

Trong hướng dẫn REST Search, chúng tôi đã sử dụng phương pháp này để gửi từ khóa tìm kiếm dưới dạng một tham số truy vấn trong URL được tìm kiếm. Hành động THÊM và CẬP NHẬT được gọi bằng cách gửi dữ liệu yêu cầu bằng phương thức POST

Triển khai tạo và cập nhật API REST

Các yêu cầu TẠO và CẬP NHẬT được gửi cùng với các giá trị đã đăng. URL yêu cầu CẬP NHẬT sẽ chứa id của một hàng cụ thể sẽ được cập nhật

Sau khi nhận được yêu cầu này, dịch vụ REST CRUD sẽ gọi lớp miền để thực hiện thao tác chèn cơ sở dữ liệu. Lớp miền sẽ tạo truy vấn chèn bằng các giá trị đã đăng. Hình dưới đây cho thấy cách ĐĂNG dữ liệu cho yêu cầu TẠO hoặc CẬP NHẬT

Tôi đang sử dụng plugin Google Chrome “Advanced REST Client” để kiểm tra API REST

Xóa bằng API REST

URL yêu cầu XÓA sẽ giống với URL CHỈNH SỬA. ID bản ghi sẽ bị xóa phải được chuyển vào URL Sau khi xóa, phản hồi API sẽ giống như được hiển thị bên dưới

Lớp miền được sử dụng cho ví dụ CRUD này

Đoạn mã sau hiển thị lớp Miền di động có chứa chức năng thực hiện các thao tác CRUD cơ sở dữ liệu. Các chức năng này được gọi bởi lớp trình xử lý REST dựa trên yêu cầu được gửi từ máy khách

Các hàm CRUD của lớp miền sẽ trả về phản hồi mảng cho trình xử lý REST được mã hóa dưới dạng định dạng JSON

REST đã trở thành tiêu chuẩn thực tế khi nói đến việc hiển thị 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 đều 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 giao diện người dùng có thể sử dụng API REST một cách dễ dàng, sẽ luôn là một điểm cộng cho bạn nếu ứng dụng web của bạn sử dụng API REST

Trong bài viết này, chúng ta 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 một điểm cuối REST

Thiết lập bộ xương

Trong phần này, chúng ta sẽ nhanh chóng đi qua cấu trúc dự án

Hãy cùng xem cấu trúc sau

1
├── Controller
2
│   └── Api
3
│       ├── BaseController.php
4
│       └── UserController.php
_______8
├── inc
├── Controller
0
├── Controller
1
├── Controller
2
├── Controller
3
├── Controller
4
├── Controller
5
├── Controller
6
├── Controller
7
├── Controller
8
├── Controller
9
2
0
2
1

Hãy cố gắng hiểu cấu trúc dự án

  • mục lục. php. điểm vào của ứng dụng của chúng tôi. Nó sẽ hoạt động như một bộ điều khiển phía trước của ứng dụng của chúng tôi
  • inc/config. php. giữ thông tin cấu hình của ứng dụng của chúng tôi. Chủ yếu, nó sẽ giữ thông tin đăng nhập cơ sở dữ liệu
  • inc/bootstrap. php. được sử dụng để khởi động ứng dụng của chúng tôi bằng cách bao gồm các tệp cần thiết
  • Mô hình/Cơ sở dữ liệu. php. lớp truy cập cơ sở dữ liệu sẽ được sử dụng để tương tác với cơ sở dữ liệu MySQL bên dưới
  • Người mẫu/Người dùngMô hình. php. tệp mô hình
    3
    62 thực hiện các phương thức cần thiết để tương tác với bảng người dùng trong cơ sở dữ liệu MySQL
  • Bộ điều khiển/Api/Bộ điều khiển cơ sở. php. một tệp điều khiển cơ sở chứa các phương thức tiện ích phổ biến
  • Bộ điều khiển/Api/UserController. php. tệp bộ điều khiển
    3
    62 chứa mã ứng dụng cần thiết để giải trí các cuộc gọi API REST

Vì vậy, đó là thiết lập cơ bản mà chúng ta sẽ thực hiện trong phần còn lại của bài viết

Tạo một cơ sở dữ liệu và các lớp mô hình

Trong phần này, chúng ta sẽ tạo cơ sở dữ liệu và bảng người dùng. Chúng tôi cũng sẽ tạo 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ùng

Tạo cơ sở dữ liệu

3
64 bằng cách thực hiện lệnh sau trong thiết bị đầu cuối MySQL của bạn. [Truy cập phần này bằng lệnh
3
65 từ dòng lệnh. ]

1
2
3

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

3
64 được tạo, hãy tiếp tục và tạo bảng
3
67 bằng cách chạy các câu lệnh sau

1
2
5
2
2
7
3
2
9
4
_______31
5
│   └── Api
3
├── Controller
0
│   └── Api
5
├── Controller
2
│   └── Api
7
├── Controller
4
│   └── Api
9

Điều đó sẽ tạo bảng

3
67 trong cơ sở dữ liệu
3
64. Bạn cũng sẽ muốn điền vào bảng này một vài bản ghi giả cho mục đích thử nghiệm. Chèn một vài bản ghi và bạn đã sẵn sàng

Tạo các lớp mô hình

Trong phần này, chúng ta sẽ tạo các lớp mô hình cần thiết

Tạo Mô hình/Cơ sở dữ liệu. tệp php với nội dung sau

1
3
1
2
3
3
3
3
5
4
3
7
5
├── Controller
0
│       ├── BaseController.php
0
├── Controller
2
│       ├── BaseController.php
2
├── Controller
4
│       ├── BaseController.php
4
├── Controller
6
│       ├── BaseController.php
6
├── Controller
8
│       ├── BaseController.php
8
2
0
4
0
4
1
4
2
4
3
4
4
4
5
4
6
4
7
4
8
4
9
│       └── UserController.php
0
│       └── UserController.php
1
│       └── UserController.php
2
│       └── UserController.php
3
│       └── UserController.php
4
│       └── UserController.php
5
│       └── UserController.php
6
│       ├── BaseController.php
2
│       └── UserController.php
8
│       ├── BaseController.php
4
5
0
5
1
5
2
5
3
5
4
5
5
5
6
5
7
5
8
5
9
├── inc
0
├── inc
1
├── inc
2
├── inc
3
├── inc
4
├── inc
5
├── inc
6
├── inc
7
│       └── UserController.php
2
├── inc
9
├── Controller
00
├── Controller
01
├── Controller
02
│       ├── BaseController.php
2
├── Controller
04
│       ├── BaseController.php
4
├── Controller
06
├── Controller
07
├── Controller
08
├── Controller
09
├── Controller
10
├── Controller
11
├── Controller
12
├── Controller
13
4
4
├── Controller
15
├── Controller
16
├── Controller
17
├── Controller
18
├── Controller
19
├── Controller
20
4
4
├── Controller
22
├── Controller
23
├── Controller
24
├── Controller
25
├── Controller
26
├── Controller
27
├── Controller
28
├── inc
0
├── Controller
30
├── inc
2
├── Controller
32
├── Controller
33
├── Controller
34
│       └── UserController.php
2
├── Controller
36_____

Đây là lớp tầng truy cập cơ sở dữ liệu, lớp này cho phép chúng ta thiết lập kết nối đến 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ư

3
70 và
3
71 cho phép chúng tôi chọn các bản ghi từ cơ sở dữ liệu. Chúng tôi sẽ không sử dụng trực tiếp lớp
3
72;

Tiếp theo, hãy tạo Model/UserModel. lớp php với các nội dung sau

1
3
1
2
├── Controller
41
3
4
├── Controller
44
5
3
5
├── Controller
0
├── Controller
48
├── Controller
2
│       ├── BaseController.php
2
├── Controller
4
├── Controller
52
├── Controller
6
│       └── UserController.php
2
├── Controller
8
├── Controller
37

Điều quan trọng cần lưu ý là lớp

3
74 mở rộng lớp
3
72

Ngoài ra, nó còn chứa phương thức

3
76, cho phép chúng ta chọn người dùng từ cơ sở dữ liệu MySQL. Bắt buộc phải chuyển tham số
3
77 để đảm bảo rằng nó sẽ không chọn tất cả các bản ghi cùng một lúc

Tất nhiên, bạn có thể định nghĩa nhiều phương thức hơn trong lớp

3
74 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 ta đã thiết lập cơ sở dữ liệu và các lớp mô hình. Trong phần tiếp theo, chúng ta sẽ xem 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 ta

Tạo các thành phần lớp ứng dụng

Trong phần này, chúng tôi sẽ tạo các tệp còn lại cần thiết để ứng dụng demo của chúng tôi hoạt động

Thư mục inc

Để bắt đầu, chúng tôi sẽ tạo các tệp cấu hình cần thiết

Tạo inc/config. tệp php với nội dung sau

1
3
1
2
├── Controller
60
3
├── Controller
62
4
├── Controller
64
5
├── Controller
66

Đảm bảo cập nhật tất cả các giá trị bằng giá trị thực mà bạn đang sử dụng trong quá trình cài đặt của mình

Tiếp theo, hãy tiếp tục và tạo inc/bootstrap. tệp php với nội dung sau

1
3
1
2
_______170
3
4
├── Controller
73
5
├── Controller
75
├── Controller
0
├── Controller
2
├── Controller
78
├── Controller
4
├── Controller
80
├── Controller
6
├── Controller
8
├── Controller
83
2
0
├── Controller
85
4
1
├── Controller
87

Đầu tiên, chúng tôi đã khởi tạo hằng số

3
79 với thư mục gốc của ứng dụng của chúng tôi. Bằng cách này, chúng ta có thể sử dụng hằng số
3
79 để chuẩn bị các đường dẫn tuyệt đối trong ứng dụng của mình. Tiếp theo, chúng tôi đã bao gồm cấu hình. php, chứa thông tin kết nối cơ sở dữ liệu. Cuối cùng, chúng tôi đã bao gồm các tệp bộ điều khiển và mô hình

Vì vậy, đó là để thiết lập các tệp phổ biến trong ứng dụng của chúng tôi

Thư mục điều khiển

Trong phần này, chúng tôi sẽ triển khai các bộ điều khiển nắm giữ phần lớn logic ứng dụng của chúng tôi

Bộ điều khiển cơ sở. tệp php

Tạo Bộ điều khiển/Api/BaseController. tệp php với nội dung sau. Lớp

3
81 chứa các phương thức tiện ích được sử dụng bởi các bộ điều khiển khác

1
3
1
2
├── Controller
91
3
3
5
4
├── Controller
95
5
├── Controller
97
├── Controller
0
├── Controller
99
├── Controller
2
2
01
├── Controller
4
│       ├── BaseController.php
2
├── Controller
6
2
05
├── Controller
8
│       └── UserController.php
2
2
0
4
1
├── Controller
95
4
3
2
12
4
5
2
14
4
7
2
16
4
9
├── Controller
99
│       └── UserController.php
1
2
20
│       └── UserController.php
3
│       ├── BaseController.php
2
│       └── UserController.php
4
2
24
│       └── UserController.php
6
2
26
│       └── UserController.php
8
5
0
2
29
5
2
│       └── UserController.php
2
5
4
5
6
├── Controller
95
5
7
2
36
5
9
2
14
├── inc
1
2
16
├── inc
3
├── Controller
99
├── inc
5
2
44
├── inc
7
│       ├── BaseController.php
2
├── inc
9
2
48
├── Controller
00
│       └── UserController.php
2
├── Controller
02
├── Controller
04
├── Controller
95
├── Controller
06
2
55
├── Controller
08
2
57
├── Controller
09
2
59
├── Controller
11
2
61
├── Controller
13
├── Controller
99
├── Controller
15
2
65
├── Controller
16
│       ├── BaseController.php
2
├── Controller
18
2
69
├── Controller
20
├── Controller
22
2
72
├── Controller
23
2
74
├── Controller
25
2
76
├── Controller
26
4
4
├── Controller
28
├── inc
4
├── Controller
30
├── Controller
32___

Hãy xem nhanh tất cả các phương thức của lớp

3
81

Phương thức

3
83 là một phương thức kỳ diệu và nó được gọi khi bạn cố gắng gọi một phương thức không tồn tại. Chúng tôi đang sử dụng cơ hội này để đưa ra lỗi
3
84 khi ai đó cố gắng gọi một phương thức mà chúng tôi chưa triển khai. Nếu điều này nghe có vẻ khó hiểu với bạn, đừng lo—nó sẽ có ý nghĩa hơn khi chúng ta kiểm tra ứng dụng của mình trong phần tiếp theo

Tiếp theo, có phương thức

3
85, trả về một mảng các phân đoạn URI. Nó rất hữu ích khi chúng tôi cố gắng xác thực điểm cuối REST do người dùng gọi. Tiếp theo đó, có phương thức
3
86, trả về một mảng các biến chuỗi truy vấn được truyền cùng với yêu cầu đến

Cuối cùng, có phương thức

3
87, được sử dụng để gửi phản hồi API. Chúng tôi sẽ gọi phương thức này khi chúng tôi muốn gửi phản hồi API cho người dùng

Bộ điều khiển người dùng. tệp php

Tiếp theo, tạo Controller/Api/UserController. tệp php với nội dung sau

1
3
1
2
2
93
3
3
5
4
├── Controller
95
5
2
99
├── Controller
0
├── Controller
99
├── Controller
2
│   └── Api
03
├── Controller
4
│       ├── BaseController.php
2
├── Controller
6
│   └── Api
07
├── Controller
8
│   └── Api
09
2
0
│   └── Api
11
4
1
4
3
│   └── Api
14
4
5
│   └── Api
16
4
7
│   └── Api
18
4
9
│       └── UserController.php
1
│   └── Api
21
│       └── UserController.php
3
│   └── Api
23
│       └── UserController.php
4
│   └── Api
25
│       └── UserController.php
6
│   └── Api
27
│       └── UserController.php
8
5
0
│   └── Api
30
5
2
│   └── Api
32
5
4
│   └── Api
34
5
6
│   └── Api
36
5
7
│   └── Api
38
5
9
4
4
├── inc
1
│   └── Api
42
├── inc
3
│   └── Api
44
├── inc
5
│   └── Api
46
├── inc
7
├── inc
4
├── inc
9
├── Controller
00
│   └── Api
51
├── Controller
02
│   └── Api
53
├── Controller
04
│   └── Api
55
├── Controller
06
│   └── Api
57
├── Controller
08
│   └── Api
59
├── Controller
09
│   └── Api
61
├── Controller
11
│   └── Api
42
├── Controller
13
│   └── Api
65
├── Controller
15
│   └── Api
67
├── Controller
16
│   └── Api
61
├── Controller
18
├── inc
4
├── Controller
20
│       └── UserController.php
2
├── Controller
22
├── Controller
37

Điều quan trọng cần lưu ý là lớp

3
88 mở rộng lớp
3
81. Lý tưởng nhất là lớp này sẽ chứa các phương thức hành động được liên kết với các điểm cuối REST được xác định cho thực thể người dùng. Ví dụ, trong trường hợp của chúng tôi, điểm cuối REST của
3
90 tương ứng với phương thức
3
91. Bằng cách này, bạn cũng có thể xác định các phương thức khác cho các điểm cuối REST khác

Phương thức

3
91 được sử dụng để lấy danh sách người dùng từ cơ sở dữ liệu MySQL. Nó chứa toàn bộ logic của điểm cuối REST của
3
90

Trong phương thức

3
91, chúng tôi đã khởi tạo một vài biến như
3
95 và
3
96 ngay từ đầu. Tiếp theo, chúng tôi kiểm tra xem người dùng đã gọi điểm cuối
3
97 bằng phương pháp
3
98 chưa; . Cuối cùng, chúng ta tạo đối tượng
3
74 và gọi phương thức
3
76 để lấy danh sách người dùng từ cơ sở dữ liệu. Chúng tôi cũng đã sử dụng hàm
│       ├── BaseController.php
01 để chuyển đổi một mảng thành một đối tượng JSON trước khi gửi cho người dùng

Cuối cùng, chúng tôi đã sử dụng phương pháp

3
87 để gửi phản hồi JSON cho người dùng. Điều quan trọng cần lưu ý là giá trị tiêu đề kiểu nội dung phản hồi được đặt thành
│       ├── BaseController.php
03 vì chúng tôi đang gửi phản hồi JSON

Tương tự, bạn cũng có thể xác định các phương thức khác cho các điểm cuối khác

chỉ số. tệp php

chỉ mục. tệp php là điểm vào của ứng dụng của chúng tôi. Hãy xem nó trông như thế nào

1
3
1
2
│   └── Api
79
3
4
│   └── Api
82
5
│   └── Api
84
├── Controller
0
├── Controller
2
│   └── Api
87
├── Controller
4
│   └── Api
89
├── Controller
6
│   └── Api
91
├── Controller
8
├── Controller
37
2
0
4
1
│   └── Api
96
4
3
4
5
│   └── Api
99
4
7
3
01
4
9
3
03
│       └── UserController.php
1
├── Controller
87

Đầu tiên, chúng tôi đã sử dụng các hàm

│       ├── BaseController.php
04 và
│       ├── BaseController.php
05 để khởi tạo các đoạn URI thành biến mảng
│       ├── BaseController.php
06. Tiếp theo, chúng tôi đang xác thực các phân đoạn URI. Cuối cùng, chúng tôi đã khởi tạo bộ điều khiển
3
88 và gọi phương thức hành động tương ứng

Cùng với đó, chúng tôi đã tạo tất cả các tệp cần thiết trong ứng dụng REST demo của mình. Trong phần tiếp theo, chúng ta sẽ xem cách gọi nó từ góc độ người dùng cuối

Cách gọi API REST của chúng tôi

Trong phần này, chúng ta sẽ xem cách gọi ứng dụng demo của bạn. Trong ứng dụng của mình, chúng tôi đã tạo một điểm cuối REST để lấy danh sách người dùng

Hãy xem URL của điểm cuối của chúng tôi trông như thế nào

1
____407____2
3
09

Nếu bạn nhớ lại chỉ mục. php, chúng tôi đã kiểm tra xem biến

│       ├── BaseController.php
08 có được đặt thành
│       ├── BaseController.php
09 không. Ngoài ra, giá trị biến
│       ├── BaseController.php
10 sẽ hoạt động như một tên phương thức. Trong trường hợp trên, biến
│       ├── BaseController.php
10 được đặt thành
│       ├── BaseController.php
12. Do đó, cuối cùng nó sẽ gọi phương thức
3
91 của lớp
3
88

Đầu ra sẽ trông như thế này

1
3
11
2
3
13
3
3
15
4
3
17
5
3
19
├── Controller
0
3
21
├── Controller
2
3
23
├── Controller
4
3
13
├── Controller
6
3
27
├── Controller
8
3
29
2
0
3
31
4
1
3
33
4
3
3
23
4
5
3
13
4
7
3
39
4
9
3
41
│       └── UserController.php
1
3
43
│       └── UserController.php
3
3
33
│       └── UserController.php
4
3
23
│       └── UserController.php
6
3
13
│       └── UserController.php
8
3
51
5
0
3
53
5
2
3
55
5
4
3
21
5
6
3
59
5
7
3
61

Như bạn có thể thấy, nó trả về danh sách người dùng dưới dạng đối tượng JSON. Ngoài ra, nếu có bất kỳ lỗi ứng dụng nào, nó cũng sẽ được trả về dưới dạng đối tượng JSON cho mục đích gỡ lỗi

Phần kết luận

Hôm nay, chúng ta đã thảo luận về cách bạn có thể xây dựng một ứng dụng REST bằng PHP và MySQL. Đối với mục đích trình diễn, chúng tôi đã tạo một ứng dụng demo 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 API REST

Làm cách nào để thêm API trong PHP?

Phát triển ứng dụng PHP được yêu cầu bằng cách sử dụng API. Tạo hoặc phát triển ứng dụng bằng cách sử dụng các API cần thiết. .
Tạo cơ sở dữ liệu và bảng DB
Thiết lập kết nối cơ sở dữ liệu
Tạo tệp API REST. Tạo chỉ mục hoặc tệp HTML. Tìm nạp các bản ghi từ cơ sở dữ liệu qua cURL

Làm cách nào để chạy API trong PHP?

Để bắt đầu với API này, chúng ta cần gọi điểm cuối Đăng ký. .
Thực hiện một yêu cầu POST. Bây giờ chúng ta chuyển sang bước đầu tiên và tạo một bộ sưu tập dữ liệu bằng cách sử dụng điểm cuối Tạo bộ sưu tập. .
Thực hiện yêu cầu NHẬN. .
Thực hiện yêu cầu PUT. .
Phương thức XÓA. .
Lặp lại yêu cầu GET và kiểm tra xem dữ liệu có thực sự bị xóa không

Chúng tôi có thể tạo API trong PHP không?

API REST cung cấp các điểm cuối [URL] mà bạn gọi để thực hiện các thao tác CRUD với cơ sở dữ liệu của bạn trên máy chủ. Trước đây, chúng ta đã nói về Cách xây dựng API REST trong Node. js và Flask. Hôm nay, chúng ta sẽ tìm hiểu cách thiết lập máy chủ PHP và viết một API REST nhỏ bằng cách sử dụng nó

PHP có hỗ trợ API không?

PHP cung cấp các API khác nhau để kết nối với MySQL . Dưới đây chúng tôi hiển thị các API được cung cấp bởi các tiện ích mở rộng mysqli và PDO. Mỗi đoạn mã tạo một kết nối đến máy chủ MySQL đang chạy trên "ví dụ. com" sử dụng tên người dùng "user" và mật khẩu "password". Và một truy vấn được chạy để chào người dùng.

Chủ Đề