Đây là JavaScript trên máy khách, sử dụng lệnh gọi AJAX để yêu cầu tệp PHP từ ví dụ trên
Ví dụ
Sử dụng JSON. parse[] để chuyển đổi kết quả thành một đối tượng JavaScript
const xmlhttp = new XMLHttpRequest[];
xmlhttp. onload = function[] {
const myObj = JSON. phân tích cú pháp [cái này. responseText];
tài liệu. getElementById["bản trình diễn"]. bên trongHTML = myObj. tên;
}
xmlhttp. open["NHẬN", "tệp demo_file. php"];
xmlhttp. gửi[];
Mảng PHP
Mảng trong PHP cũng sẽ được chuyển đổi thành JSON khi sử dụng hàm PHP json_encode[]
tập tin PHP
$myArr = array["John", "Mary", "Peter", "Sally"];
$myJSON = json_encode[$myArr];
echo $myJSON;
?>
JavaScript ứng dụng khách
Đây là JavaScript trên máy khách, sử dụng lệnh gọi AJAX để yêu cầu tệp PHP từ ví dụ về mảng ở trên
Ví dụ
Sử dụng JSON. parse[] để chuyển đổi kết quả thành một mảng JavaScript
var xmlhttp = new XMLHttpRequest[];
xmlhttp. onload = function[] {
const myObj = JSON. phân tích cú pháp [cái này. responseText];
tài liệu. getElementById["bản trình diễn"]. innerHTML = myObj[2];
}
xmlhttp. open["NHẬN", "demo_file_array. php", true];
xmlhttp. gửi[];
Cơ sở dữ liệu PHP
PHP là ngôn ngữ lập trình phía máy chủ và có thể được sử dụng để truy cập cơ sở dữ liệu
Hãy tưởng tượng bạn có một cơ sở dữ liệu trên máy chủ của mình và bạn muốn gửi yêu cầu tới nó từ máy khách nơi bạn yêu cầu 10 hàng đầu tiên trong bảng có tên là "khách hàng"
Trên máy khách, hãy tạo một đối tượng JSON mô tả số hàng bạn muốn trả về
Trước khi bạn gửi yêu cầu đến máy chủ, hãy chuyển đổi đối tượng JSON thành một chuỗi và gửi nó dưới dạng tham số tới url của trang PHP
Hầu hết các API được sử dụng để chấp nhận yêu cầu và gửi phản hồi ở định dạng JSON. JSON là định dạng trao đổi dữ liệu thực tế. Điều quan trọng là tìm hiểu cách gửi dữ liệu yêu cầu JSON bằng lệnh gọi API
cURL là một cách truy cập từ xa điểm cuối API qua mạng. Đoạn mã dưới đây sẽ giúp bạn tiết kiệm thời gian để đăng dữ liệu JSON qua PHP cURL
Ví dụ. PHP cURL POST bằng cách gửi dữ liệu JSON
Nó chuẩn bị JSON từ một mảng đầu vào và gói nó vào bài đăng cURL PHP
Nó sử dụng hàm PHP json_encode để lấy các tham số yêu cầu được mã hóa. Sau đó, nó sử dụng tùy chọn CURLOPT_POSTFIELDS để nhóm dữ liệu JSON sẽ được đăng
curl-post-json. php
"Lion",
"type" => "Wild",
"name" => "Simba",
"zoo" => array[
"address1" => "5333 Zoo",
"city" => "Los Angeles",
"state" => "CA",
"country" => "USA",
"zipcode" => "90027"
]
];
// encoding the request data as JSON which will be sent in POST
$encodedData = json_encode[$data];
// initiate curl with the url to send request
$curl = curl_init[$url];
// return CURL response
curl_setopt[$curl, CURLOPT_RETURNTRANSFER, true];
// Send request data using POST method
curl_setopt[$curl, CURLOPT_CUSTOMREQUEST, "POST"];
// Data conent-type is sent as JSON
curl_setopt[$curl, CURLOPT_HTTPHEADER, array[
'Content-Type:application/json'
]];
curl_setopt[$curl, CURLOPT_POST, true];
// Curl POST the JSON data to send the request
curl_setopt[$curl, CURLOPT_POSTFIELDS, $encodedData];
// execute the curl POST request and send data
$result = curl_exec[$curl];
curl_close[$curl];
// if required print the curl response
print $result;
?>
Đoạn mã trên là một phần của chu trình phản hồi yêu cầu API. Nếu điểm cuối thuộc về một số API của bên thứ ba, mã này là đủ để hoàn thành ví dụ này
Tuy nhiên, nếu API nằm trong hệ thống nội bộ [API tùy chỉnh được tạo cho chính ứng dụng], thì dữ liệu đã đăng phải được xử lý
Cách lấy dữ liệu JSON ở điểm cuối
Điều này là để xử lý dữ liệu JSON được đăng qua PHP cURL trong điểm cuối API
Nó đã sử dụng json_decode để chuyển đổi chuỗi JSON được đăng thành một đối tượng JSON. Trong chương trình này, nó đặt “true” để chuyển đổi dữ liệu yêu cầu thành một mảng
curl-request-data. php
Hàm json_encode cũng cho phép đặt giới hạn lồng cho phép của JSON đầu vào. Giới hạn mặc định là 512
Nếu dữ liệu JSON đã đăng vượt quá giới hạn lồng ghép thì điểm cuối API sẽ không thể lấy dữ liệu của bài đăng
Các chế độ đăng dữ liệu khác lên yêu cầu cURL
Trong hướng dẫn trước, chúng ta đã thấy nhiều ví dụ về việc gửi yêu cầu bằng PHP cURL POST
Chương trình này đặt loại nội dung “application/json” trong CURLOPT_HTTPHEADER. Có các chế độ đăng dữ liệu khác qua PHP cURL
Ký hiệu đối tượng JavaScript là định dạng trao đổi dữ liệu chỉ định quy tắc định dạng cho biểu diễn di động của dữ liệu có cấu trúc. JSON đại diện cho bốn kiểu nguyên thủy [chuỗi, số, booleans và null] và hai kiểu có cấu trúc [đối tượng và mảng]
BÀI ĐĂNG HTTP là gì?
HTTP POST là một trong chín phương thức HTTP tiêu chuẩn. Phương thức POST yêu cầu máy chủ API REST chấp nhận đối tượng được đính kèm trong phần nội dung của thông báo tại điểm cuối được xác định bởi URI yêu cầu. Phương thức POST khác với các yêu cầu HTTP HEAD và GET ở chỗ các yêu cầu HTTP POST có thể thay đổi trạng thái của máy chủ
API REST là gì?
REST là viết tắt của Chuyển trạng thái đại diện và là cách kết nối hai hệ thống máy tính qua Internet. API REST là trình duyệt và ngôn ngữ lập trình bất khả tri. Bạn có thể chạy ứng dụng API REST của mình trong bất kỳ trình duyệt hiện đại nào hoặc tạo ứng dụng API REST trên máy tính để bàn hoặc thiết bị di động bằng bất kỳ ngôn ngữ lập trình nào, bao gồm cả PHP.
API REST xác định một bộ quy tắc để nhà phát triển tạo API.
- máy khách-máy chủ. giao diện người dùng máy khách API REST [trang web, máy tính để bàn hoặc ứng dụng di động] phải được tách rời khỏi máy chủ API REST [bộ xử lý yêu cầu và lưu trữ dữ liệu] để mỗi phần có thể được phát triển và mở rộng riêng lẻ
- không quốc tịch. Mọi yêu cầu API REST phải được thực thi với tất cả dữ liệu cần thiết mà không cho rằng máy chủ có thể có bất kỳ dữ liệu nào từ các yêu cầu ứng dụng khách API REST trước đó
- nhiều lớp. ứng dụng khách API REST không cần biết liệu nó có giao tiếp với máy chủ thực hay trung gian hay không. Máy chủ trung gian [proxy hoặc bộ cân bằng tải] có thể cung cấp cho máy chủ API REST cơ bản khả năng mở rộng và bảo mật bổ sung
- Có thể lưu vào bộ nhớ đệm. mỗi phản hồi API REST phải được xác định là có thể lưu vào bộ nhớ cache hay không
PHP REST API POST Ví dụ
Để gửi dữ liệu đến máy chủ API REST bằng PHP, bạn phải tạo một yêu cầu HTTP POST và bao gồm dữ liệu POST trong phần thân của yêu cầu. Bạn cũng cần cung cấp Loại nội dung. tiêu đề yêu cầu application/json và Content-Length. Dưới đây là ví dụ về yêu cầu POST API REST tới điểm cuối ReqBin REST API. Nhấp vào Tạo mã để xem mã PHP cho ví dụ POST API REST này
Yêu cầu POST API REST
POST /echo/post/json HTTP/1.1
Host: reqbin.com
Accept: application/json
Content-Type: application/json
Content-Length: 81
{
"Id": 78912,
"Customer": "Jason Sweet",
"Quantity": 1,
"Price": 18.00
}
Trong ví dụ yêu cầu POST API REST này, máy chủ thông báo cho ứng dụng khách API REST rằng nó đã trả về JSON bằng cách gửi Loại nội dung. ứng dụng/tiêu đề json trong phản hồi.
Phản hồi của máy chủ đối với yêu cầu POST API REST thử nghiệm của chúng tôi.
Phản hồi của máy chủ API REST
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 19
{"success":"true"}
Loại nội dung chính xác khi đăng JSON lên điểm cuối API REST là gì?
Loại MIME chính thức cho JSON là application/json. Để POST dữ liệu JSON lên máy chủ, bạn phải chỉ định loại dữ liệu trong nội dung của thông báo POST bằng cách sử dụng tiêu đề yêu cầu Loại nội dung thích hợp
Loại nội dung cho JSON
Content-Type: application/json
Tại sao điều quan trọng là phải chỉ định Loại nội dung chính xác khi đăng JSON lên điểm cuối API REST?
Nếu bạn không chuyển đúng tiêu đề Kiểu nội dung cho máy chủ, ứng dụng của bạn có thể không hoạt động. Máy chủ API REST cần tiêu đề Loại nội dung hợp lệ để diễn giải chính xác dữ liệu nội dung thông báo yêu cầu. Điều này đặc biệt quan trọng đối với các khung MVC chuyển đổi hoàn toàn các giá trị từ JSON sang các biến cục bộ
Nếu máy khách PHP REST API của bạn mong đợi dữ liệu JSON từ máy chủ, thì nó cũng phải gửi Chấp nhận. tiêu đề yêu cầu ứng dụng/json. Tiêu đề Chấp nhận cho máy chủ biết rằng máy khách có thể chấp nhận và xử lý dữ liệu JSON. Nếu máy chủ trả về dữ liệu ở định dạng JSON, nó phải thông báo cho máy khách API PHP về loại dữ liệu bằng cách sử dụng Loại nội dung. tiêu đề phản hồi ứng dụng/json
Chấp nhận ví dụ tiêu đề JSON
Accept: application/json
Xem thêm
- SOAP vs REST
- Làm cách nào để nhận JSON từ điểm cuối API REST?
- Kiểm tra phản hồi JSON trực tuyến
- Ví dụ về tải trọng JSON
Tạo các đoạn mã cho PHP và các ngôn ngữ lập trình khác
Chuyển đổi yêu cầu POST API REST của bạn sang PHP, JavaScript/AJAX, Curl/Bash, Python, Java, C#/. NET bằng cách sử dụng trình tạo mã PHP
PHP REST API POST Ví dụ và bài viết liên quan
Làm cách nào để đăng dữ liệu JSON bằng Curl?