Cách lấy dữ liệu từ api trong php

Trong hướng dẫn này, chúng ta sẽ tạo và sử dụng API REST đơn giản trong PHP. REST cho phép bạn truy cập và làm việc với các dịch vụ dựa trên web. Nhưng trước khi tiếp tục, hãy để tôi giải thích REST là gì và nó hoạt động như thế nào

REST là gì?

REST là viết tắt của Chuyển giao trạng thái đại diện, REST là một kiểu kiến ​​trúc xác định một tập hợp các ràng buộc để phát triển và sử dụng các dịch vụ web thông qua giao thức chuẩn (HTTP). API REST là một dịch vụ web phi trạng thái đơn giản, dễ triển khai và. Có sẵn một dịch vụ web khác là SOAP, viết tắt của Giao thức truy cập đối tượng đơn giản do Microsoft tạo ra

API REST được sử dụng rộng rãi trong các ứng dụng web và di động so với SOAP. REST có thể cung cấp dữ liệu đầu ra ở nhiều định dạng, chẳng hạn như Ký hiệu đối tượng JavaScript (JSON), Ngôn ngữ đánh dấu có thể mở rộng (XML), Giá trị phân tách bằng lệnh (CSV) và nhiều định dạng khác trong khi SOAP mô tả đầu ra bằng Ngôn ngữ mô tả dịch vụ web (WSDL)

API REST hoạt động như thế nào

Các yêu cầu REST có liên quan đến các hoạt động CRUD (Tạo, Đọc, Cập nhật, Xóa) trong cơ sở dữ liệu, REST sử dụng các yêu cầu GET, POST, PUT và DELETE. Hãy để tôi so sánh chúng với CRUD

  • GET được sử dụng để lấy thông tin tương tự như Read
  • POST được sử dụng để tạo bản ghi mới tương tự như Tạo
  • PUT được sử dụng để cập nhật bản ghi tương tự như Cập nhật
  • XÓA được sử dụng để xóa bản ghi tương tự như Xóa

Cách tạo và sử dụng API REST đơn giản trong PHP

Định dạng JSON là định dạng đầu ra phổ biến nhất của API REST, chúng tôi sẽ sử dụng định dạng JSON để sử dụng API REST đơn giản của chúng tôi. Chúng tôi sẽ phát triển API REST thanh toán giao dịch trực tuyến để làm ví dụ. Tôi sẽ cố gắng giữ nó đơn giản nhất có thể vì vậy tôi sẽ sử dụng yêu cầu GET để lấy thông tin

  1. Tạo API REST trong PHP
  2. Sử dụng API REST trong PHP

1. Tạo API REST trong PHP

Để tạo API REST, hãy làm theo các bước sau

  1. Tạo cơ sở dữ liệu và bảng với dữ liệu giả
  2. Tạo kết nối cơ sở dữ liệu
  3. Tạo tệp API REST

1. Tạo cơ sở dữ liệu và bảng với dữ liệu giả

Để tạo cơ sở dữ liệu chạy truy vấn sau

CREATE DATABASE allphptricks;

Để tạo một bảng chạy truy vấn sau. Ghi chú. Tôi đã đính kèm tệp SQL của bảng này với dữ liệu giả, chỉ cần tải xuống tệp zip hoàn chỉnh của hướng dẫn này

CREATE TABLE IF NOT EXISTS `transactions` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`order_id` int(50) NOT NULL,
`amount` decimal(9,2) NOT NULL,
`response_code` int(10) NOT NULL,
`response_desc` varchar(50) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `order_id` (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;

2. Tạo kết nối cơ sở dữ liệu

Chỉ cần tạo một db. php  và dán kết nối cơ sở dữ liệu sau vào đó. Đảm bảo rằng bạn cập nhật các thông tin đăng nhập này với thông tin đăng nhập cơ sở dữ liệu của mình.

// Enter your Host, username, password, database below.
$con = mysqli_connect("localhost","root","","allphptricks");
    if (mysqli_connect_errno()){
	echo "Failed to connect to MySQL: " . mysqli_connect_error();
	die();
	}

3. Tạo tệp API REST

Tạo api. php  và dán đoạn mã sau vào đó.

0){
	$row = mysqli_fetch_array($result);
	$amount = $row['amount'];
	$response_code = $row['response_code'];
	$response_desc = $row['response_desc'];
	response($order_id, $amount, $response_code,$response_desc);
	mysqli_close($con);
	}else{
		response(NULL, NULL, 200,"No Record Found");
		}
}else{
	response(NULL, NULL, 400,"Invalid Request");
	}

function response($order_id,$amount,$response_code,$response_desc){
	$response['order_id'] = $order_id;
	$response['amount'] = $amount;
	$response['response_code'] = $response_code;
	$response['response_desc'] = $response_desc;
	
	$json_response = json_encode($response);
	echo $json_response;
}
?>

Đoạn script trên sẽ chấp nhận yêu cầu GET và trả về đầu ra ở định dạng JSON

Tôi đã tạo tất cả các tệp này trong tên thư mục còn lại, bây giờ bạn có thể lấy thông tin giao dịch bằng cách duyệt qua URL sau

http://localhost/rest/api.php?order_id=15478959

Bạn sẽ nhận được đầu ra sau

Cách lấy dữ liệu từ api trong php

URL trên không thân thiện với người dùng, do đó chúng tôi sẽ viết lại URL thông qua . htaccess , hãy sao chép, dán quy tắc sau vào  . htaccess  tệp.

RewriteEngine On    # Turn on the rewriting engine

RewriteRule ^api/([0-9a-zA-Z_-]*)$ api.php?order_id=$1 [NC,L]

Giờ đây, bạn có thể lấy thông tin giao dịch bằng cách duyệt qua URL sau

http://localhost/rest/api/15478959

Bạn sẽ nhận được đầu ra sau

Cách lấy dữ liệu từ api trong php

2. Sử dụng API REST trong PHP

Để sử dụng API REST, hãy làm theo các bước sau

  1. Tạo một tệp chỉ mục với biểu mẫu HTML
  2. Tìm nạp bản ghi thông qua CURL

1. Tạo một tệp chỉ mục với biểu mẫu HTML




2. Tìm nạp bản ghi thông qua CURL

________số 8

Bạn có thể làm bất cứ điều gì với những dữ liệu đầu ra này, bạn có thể chèn hoặc cập nhật nó vào cơ sở dữ liệu của riêng mình nếu bạn đang sử dụng API REST của bất kỳ nhà cung cấp dịch vụ nào khác. Thông thường trong trường hợp giao dịch trực tuyến, nhà cung cấp dịch vụ cung cấp trạng thái thanh toán qua API. Bạn có thể kiểm tra thanh toán được thực hiện thành công hay không. Họ cũng cung cấp một hướng dẫn đầy đủ về nó

Đảm bảo CURL được bật trên máy chủ web của bạn hoặc trên máy chủ cục bộ của bạn khi bạn đang thử nghiệm bản demo

Tôi cố gắng hết sức để giải thích hướng dẫn này đơn giản nhất có thể

Tải xuống bản trình diễn

Nếu bạn thấy hướng dẫn này hữu ích, hãy chia sẻ nó với bạn bè và nhóm nhà phát triển của bạn

Tôi đã dành vài giờ để tạo hướng dẫn này, nếu bạn muốn nói lời cảm ơn, hãy thích trang của tôi trên Facebook và chia sẻ nó

Làm cách nào để lấy dữ liệu JSON từ API REST trong PHP?

Để nhận JSON từ điểm cuối API REST, bạn phải gửi yêu cầu HTTP GET đến máy chủ API REST và cung cấp Chấp nhận. tiêu đề yêu cầu ứng dụng/json . chấp nhận. tiêu đề application/json cho máy chủ API REST biết rằng ứng dụng khách API muốn nhận dữ liệu ở định dạng JSON.

Làm cách nào để gửi dữ liệu bằng API trong PHP?

Để gửi dữ liệu đến máy chủ API REST bằng PHP, bạn phải thực hiện yêu cầu HTTP POST và đưa dữ liệu POST vào 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.

Làm cách nào để tìm nạp dữ liệu từ API trong PHP bằng cách sử dụng curl?

Giải thích mã . initiate a curl and pass your API URL. Sau đó thực thi CURL & lưu trữ dữ liệu nhận được. Vì URL API trả về dữ liệu JSON, chúng tôi cần giải mã nó bằng json_decode. Bây giờ bạn có tất cả dữ liệu dưới dạng một mảng mà bạn có thể duyệt qua bằng cách sử dụng foreach và hiển thị tương ứng.

Làm cách nào để gửi phản hồi API trong PHP?