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

PHP không được tích hợp sẵn với ứng dụng khách API. Chúng ta phải cài đặt tiện ích mở rộng php-curl. PHP có một thư viện cho curl. Chúng ta cần cài đặt nó trước khi có thể sử dụng nó trong PHP

sudo apt-get install php5-curl
sudo service apache2 restart

Sau khi cài đặt khởi động lại máy chủ apache để curl có hiệu lực

Gọi API REST dựa trên JSON trong PHP

Ví dụ dưới đây là một yêu cầu GET đơn giản trả về phản hồi json. Phản hồi json có thể được phân tích cú pháp thành một đối tượng bằng cách sử dụng

$url = 'https://api.example.com/v1.0/details/customer';
  
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$response = json_decode($response);
curl_close($ch);
2 để chương trình sử dụng thêm

$url = 'https://api.example.com/v1.0/details/customer';
  
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$response = json_decode($response);
curl_close($ch);

Tùy chọn

$url = 'https://api.example.com/v1.0/details/customer';
  
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$response = json_decode($response);
curl_close($ch);
3 được đặt thành
$url = 'https://api.example.com/v1.0/details/customer';
  
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$response = json_decode($response);
curl_close($ch);
4 để trả lại chuyển khoản dưới dạng một chuỗi giá trị trả về của curl_exec() thay vì xuất trực tiếp

Trước khi chúng tôi chuyển sang yêu cầu POST, hãy xem cách chúng tôi có thể lặp qua đối tượng phản hồi và thực hiện kết xuất phía máy chủ

$blogList = json_decode($response);
curl_close($ch);

foreach ($blogList->pages as $blog) {
    echo(''.$blog->title.'');
}

POST yêu cầu trong PHP

Yêu cầu POST khác với yêu cầu GET. Trong yêu cầu POST, có phần thân nên chúng tôi cần gửi dữ liệu bằng cách sử dụng

$url = 'https://api.example.com/v1.0/details/customer';
  
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$response = json_decode($response);
curl_close($ch);
5. Trong ví dụ bên dưới, chúng tôi đang gửi yêu cầu POST bằng cách sử dụng tùy chọn
$url = 'https://api.example.com/v1.0/details/customer';
  
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$response = json_decode($response);
curl_close($ch);
6

________số 8_______

Đặt tiêu đề bằng CURLOPT_HTTPHEADER

Nếu bạn không đặt tiêu đề, chỉ cần thêm dòng dưới đây

curl_setopt($ch, CURLOPT_HEADER, 0);

Nhưng nếu bạn muốn thêm tiêu đề, hãy đặt chúng vào một mảng và sử dụng tùy chọn CURLOPT_HEADER

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
      'Authorization: apikey '.$authToken,
      'Content-Type: application/json'
));

Hàm tiện ích gọi API trong PHP

Bây giờ chúng ta tạo một hàm chung có thể gửi bất kỳ phương thức nào GET, POST, PUT, v.v. yêu cầu trong PHP. Điều này hữu ích trong trường hợp chúng tôi gọi API thường xuyên trong mã của mình. Có một chức năng tiện ích giúp chúng tôi tiết kiệm các dòng mã, chúng tôi cũng có thể cải thiện chức năng này ở một nơi duy nhất

function rest_call($method, $url, $data = false, $contentType= false, $token = false)
{
    $curl = curl_init();

    if($token){ //Add Bearer Token header in the request
        curl_setopt($curl, CURLOPT_HTTPHEADER, array(
            'Authorization: '.$token
        ));
    }

    switch ($method)
    {
        case "POST":
            curl_setopt($curl, CURLOPT_POST, 1);
            if ($data){
                if($contentType){
                    curl_setopt($curl, CURLOPT_HTTPHEADER, array(
                        'Content-Type: '.$contentType
                    ));
                }
                curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
            }
            break;
        case "PUT":
            curl_setopt($curl, CURLOPT_PUT, 1);
            break;
        default:
            if ($data)
                $url = sprintf("%s?%s", $url, http_build_query($data));
    }

    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

    $result = curl_exec($curl);

    curl_close($curl);

    return $result;
}

Đang gửi URL được mã hóa MẪU POST Yêu cầu

$postData = array("name"=>"John Doe", "from"=>"New York");
$string = http_build_query($postData);
$url = 'https://api.example.com/v1.0/user';
$jsonResponse = rest_call("POST",$url, $string, 'application/x-www-form-urlencoded');
$response = json_decode($jsonResponse);

Gửi JSON trong PHP POST Yêu cầu

Khi gửi yêu cầu dưới dạng dữ liệu JSON, tiêu đề

$url = 'https://api.example.com/v1.0/details/customer';
  
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$response = json_decode($response);
curl_close($ch);
7 cần được đặt thành
$url = 'https://api.example.com/v1.0/details/customer';
  
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$response = json_decode($response);
curl_close($ch);
8. Lưu trữ dữ liệu trong một mảng PHP và sử dụng hàm
$url = 'https://api.example.com/v1.0/details/customer';
  
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$response = json_decode($response);
curl_close($ch);
9 để chuyển đổi dữ liệu đó thành Chuỗi JSON để chuyển vào phần thân yêu cầu


$postData = array("name"=>"John Doe", "from"=>"New York");
$jsonData = json_encode($postData);
// Send the request
$url = 'https://api.example.com/v1.0/user';
$jsonResponse = rest_call('POST',$url, $jsonData,'appplication/json');

//Decode JSON back to PHP object
$response = json_decode($jsonResponse);

JSON được trả về trong phản hồi được chuyển đổi trở lại đối tượng PHP, sử dụng

$url = 'https://api.example.com/v1.0/details/customer';
  
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$response = json_decode($response);
curl_close($ch);
2. Ví dụ dưới đây cho thấy cách sử dụng JSON được trả về trong phản hồi

Kết xuất phía máy chủ với JSON trong PHP

Vì vậy, khi chúng tôi gọi API REST của mình, chúng tôi muốn sử dụng JSON ở phía máy chủ để hiển thị HTML

$covidJsonResponse = rest_call("GET","https://api.metamug.com/covid/v1.0/india");
$covidIndiaObject = json_decode($covidJsonResponse);
$lastCovidUpdateInfo = end($covidIndiaObject->historical_count);

Như bạn có thể thấy phương thức json_decode cung cấp cho chúng ta một đối tượng PHP, điều này sẽ giúp hiển thị phía máy chủ. Nếu lệnh gọi API REST này được thực hiện từ trình duyệt, chúng tôi sẽ yêu cầu thao tác dom để cập nhật div với các giá trị JSON

$url = 'https://api.example.com/v1.0/details/customer';
  
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$response = json_decode($response);
curl_close($ch);
0

Sau khi DOM được hiển thị ở phía máy khách, chúng tôi bắt buộc phải thay đổi bằng javascript. Trong trường hợp này, chúng ta có thể dễ dàng truy cập đối tượng json và các thuộc tính của nó mà không cần thao tác DOM

Chuyển JSON sang Javascript từ PHP

Có những trường hợp chúng tôi muốn gửi JSON này xuống trình duyệt như biểu đồ và cho người dùng thư viện js mà php không xử lý được. Chúng tôi có thể tạo JSON mà chúng tôi đã truy xuất bằng cách sử dụng lệnh gọi REST trong PHP thành javascript. Trong lần tải trang đầu tiên, JSON này sẽ được chuyển vào DOM. Kết xuất phía máy khách nhanh hơn vì nó có thể tránh lệnh gọi HTTP để tìm nạp JSON

Làm cách nào để POST dữ liệu thông qua API trong PHP?

Để tạo yêu cầu POST tới điểm cuối API bằng PHP, bạn cần phải gửi yêu cầu POST HTTP tới máy chủ và chỉ định tiêu đề yêu cầu Loại nội dung chỉ định phương tiện dữ liệu . Tiêu đề Độ dài nội dung cho biết kích thước dữ liệu trong nội dung thư POST. . The Content-Length header indicates the data size in the POST message body.

Bạn có thể gửi dữ liệu qua API không?

API rất phù hợp để nhận dữ liệu từ một dịch vụ, đồng thời gửi dữ liệu đến một dịch vụ . Trong bài viết này, bạn sẽ tìm hiểu về. Cơ quan yêu cầu.

Làm cách nào để gửi dữ liệu JSON tới API trong PHP?

Gửi dữ liệu JSON qua POST bằng PHP cURL .
Chỉ định URL ( $url ) nơi gửi dữ liệu JSON
Khởi tạo tài nguyên cURL mới bằng cách sử dụng curl_init()
Thiết lập dữ liệu trong mảng PHP và mã hóa thành chuỗi JSON bằng json_encode()
Đính kèm dữ liệu JSON vào các trường POST bằng tùy chọn CURLOPT_POSTFIELDS

Làm cách nào để nhận dữ liệu yêu cầu API trong PHP?

Mã để đọc dữ liệu API bằng cách sử dụng hàm PHP file_get_contents() . Điều này có thể đọc bất kỳ tệp hoặc dữ liệu API nào bằng URL và lưu trữ dữ liệu trong một biến. Chức năng này là phương pháp dễ dàng nhất để đọc bất kỳ dữ liệu nào bằng cách chuyển URL API.