Cara Menggunakan Geekflare API dengan klien PHP

Diterbitkan: 2022-10-25

Dalam panduan ini, kita akan membahas berbagai klien PHP yang dapat Anda gunakan untuk terhubung ke Geekflare API.

Secara khusus, kami akan membahas penggunaan Geekflare API dengan fungsi file_get_contents , Guzzle, HTTPful, dan klien HTTPS Symfony.

Apa itu Geekflare API?

Geekflare menyediakan seperangkat alat gratis yang dapat Anda gunakan untuk memantau kinerja situs web Anda. Alat-alat ini termasuk penganalisis tautan yang rusak, waktu untuk memuat, dan pemeriksa DNS. Alat-alat ini dapat diakses secara online melalui antarmuka web atau API.

API didasarkan pada HTTP dan dapat diakses dari bahasa pemrograman apa pun dengan pustaka klien HTTP. API memiliki tingkat gratis yang murah hati yang dapat Anda mulai gunakan tanpa perlu memberikan informasi pembayaran.

Apa yang akan kita bangun

Kami akan menulis skrip, yang dapat dieksekusi dari baris perintah, yang akan menghitung berapa lama waktu yang dibutuhkan untuk memuat situs web Google dan mencetaknya ke terminal. Kami akan mengimplementasikan program sederhana ini menggunakan klien HTTP PHP yang berbeda untuk mendemonstrasikan seperti apa penggunaan API itu.

Secara khusus, kita akan menggunakan fungsi bawaan – file_get_contents() dan php_curl , dan ekstensi Guzzle PHP. Betapapun sederhananya contoh-contoh ini, mereka menunjukkan konsep inti penggunaan Geekflare API.

Prasyarat

Untuk mengikuti, Anda perlu mengetahui PHP sebelumnya dan menginstalnya di komputer Anda. Selain itu, Anda akan memerlukan Komposer untuk mengelola ekstensi.

Terakhir, Anda juga memerlukan editor teks untuk menulis kode. Dalam kasus saya, saya akan menggunakan Visual Studio Code, editor teks sumber terbuka populer dari Microsoft. Anda dapat mengunduhnya dari situs web Visual Studio Code.

Ikhtisar Geekflare API

API Geekflare memiliki titik akhir yang berbeda tergantung pada apa yang ingin Anda lakukan. Daftar lengkap titik akhir dan dokumentasi terkaitnya dapat ditemukan di halaman dokumentasi.

Membuat akun Geekflare

Untuk mulai menggunakan API, Anda harus membuat akun dengan membuka laman landas API dan mengeklik tombol daftar. Setelah pendaftaran selesai, Anda akan dibawa ke dasbor, di mana Anda akan melihat kunci API Anda. Dashboard harus seperti gambar di bawah ini. Saya telah menghitamkan kunci API saya karena alasan keamanan.

Geekflare-Dasbor-1

Dalam setiap permintaan API yang Anda buat, Anda harus memberikan kunci ini sebagai header permintaan. Segera, Anda akan melihat bagaimana ini bisa dilakukan.

Dengan akun Geekflare dibuat dan PHP diinstal, kita dapat mulai membuat proyek.

Membuat folder proyek

Pertama, buat folder tempat kita akan menyimpan file proyek. Setelah itu, buat file berikut

  • .env
  • with_curl.php
  • with_file_get_contents.php
  • with_guzzle.php

Setelah itu, jalankan perintah berikut untuk menginstal vlucas/phpdotenv dan guzzlehttp/guzzle

 composer require vlucas/phpdotenv guzzlehttp/guzzle

Pada titik ini, folder proyek Anda akan terlihat seperti ini:

Tangkapan layar-dari-2022-10-17-10-55-35

Sekarang buka file .env dan tambahkan baris kode berikut, ganti <your-api-key> dengan kunci API Anda yang sebenarnya dari dasbor Geekflare:

 API_KEY=<your-api-key>

Menggunakan file_get_contents()

Metode pertama yang bisa kita gunakan untuk membuat permintaan HTTP adalah dengan memanggil fungsi file_get_contents() yang dibangun ke dalam PHP. Tanda tangan fungsi dari fungsi file_get_contents() adalah sebagai berikut:

 file_get_contents(path, include_path, context)

Meskipun metode ini sering digunakan untuk membaca konten file di penyimpanan lokal, kita dapat menggunakannya untuk membaca sumber daya web, seperti data yang dikembalikan oleh titik akhir API.

Sekarang untuk memulai, buka with_file_get_contents.php dan tambahkan kode PHP boilerplate.

 <?php // all the code to be inserted here ?>

Selanjutnya, kita bisa mulai memuat ekstensi. Tambahkan baris kode berikut ke file Anda

 require_once('vendor/autoload.php');

Selanjutnya, kita dapat memuat variabel lingkungan kita, yang mencakup kunci API

 $dotenv = Dotenv\Dotenv::createImmutable(__DIR__); $dotenv->load();

Kemudian, kita dapat menentukan muatannya. Ini akan menjadi data yang akan kami kirim sebagai bagian dari badan permintaan

 $payload = json_encode([ "url" => "https://www.google.com", "proxyCountry" => "us", "followRedirect" => true ]);

Kami telah membuat variabel payload dan menetapkannya ke string JSON yang berisi url , proxyCountry dan followRedirect sebagai properti.

Properti url menentukan halaman web yang waktu bukanya ingin kita periksa.

proxyCountry adalah lokasi server yang ingin kita gunakan untuk membuat permintaan. Dalam hal ini, kami menggunakan server AS, tetapi Anda dapat memilih dari India, Cina, Inggris, dan Prancis. Anda dapat membaca dokumentasi untuk lebih jelasnya.

Kemudian followRedirect menentukan apakah server proxy harus mengikuti pengalihan apa pun dan mengukur waktu respons dari respons akhir atau pengalihan pertama.

Setelah itu, kita dapat membuat opsi yang akan mengonfigurasi permintaan kita dengan menambahkan kode ini:

 $options = [ "http" => [ "method" => "POST", "header" => array("Content-Type: application/json", "x-api-key : " . $_ENV['API_KEY']), "content" => $payload ] ];

Dengan melakukan ini, kami telah membuat objek opsi yang menetapkan bahwa metode HTTP kami adalah POST, dan kami memiliki header yang menentukan dua properti, tipe konten sebagai JSON dan x-api-key API yang Anda tentukan di .env dan telah dimuat sebagai variabel lingkungan.

Selanjutnya, kita dapat membuat permintaan dengan membuat aliran di mana opsi kita akan ditulis:

 $context = stream_context_create($options);

Selanjutnya, kita memanggil metode file_get_contents() untuk membuat permintaan dan menyimpan respons sebagai variabel.

 $response = file_get_contents("https://api.geekflare.com/loadtime", false, $context);

Kami membuat permintaan ke https://api.geekflare.com/loadtime . Salah memberi tahu PHP untuk tidak menggunakan jalur. Dan kami meneruskan konteks yang kami buat ke metode.

Untuk menampilkan respon, kita akan menggunakan output sebagai berikut.

 echo "Loadtime: " . json_decode($response)->data->total . "\n";

Di akhir ini, file Anda akan terlihat seperti ini:

 <?php require_once('vendor/autoload.php'); $dotenv = Dotenv\Dotenv::createImmutable(__DIR__); $dotenv->load(); $payload = json_encode([ "url" => "https://www.google.com", "proxyCountry" => "us", "followRedirect" => true ]); $options = [ "http" => [ "method" => "POST", "header" => array("Content-Type: application/json", "x-api-key : " . $_ENV['API_KEY']), "content" => $payload ] ]; $context = stream_context_create($options); $response = file_get_contents("https://api.geekflare.com/loadtime", false, $context); echo "Loadtime: " . json_decode($response)->data->total . "\n"; ?>

Saat Anda menjalankan file menggunakan perintah berikut:

 php with_file_get_contents.php

Anda akan mendapatkan output berikut:

 Loadtime: 81

Menggunakan cURL

cURL adalah utilitas baris perintah yang digunakan untuk membuat permintaan URL sisi klien. Di PHP, dapat digunakan menggunakan utilitas php-curl. Untuk mulai menggunakannya, buka file with_curl.php dan tulis boilerplate PHP

 <?php // all new code will be written here ?>

Kemudian mari kita mengimpor ekstensi dan memuat variabel lingkungan API_KEY yang didefinisikan dalam file .env

 require_once('vendor/autoload.php'); $dotenv = Dotenv\Dotenv::createImmutable(__DIR__); $dotenv->load();

Selanjutnya, kita akan membuat variabel untuk menyimpan header objek kita sebagai array di mana setiap elemen individu dalam array adalah header tertentu.

 $header = ["Content-type: application/json", "x-api-key: " . $_ENV['API_KEY']];

Kami mendefinisikan dua header, satu untuk tipe konten dan satu untuk kunci API.

Kemudian kita dapat menentukan isi permintaan.

 $body = json_encode([ "url" => "google.com", "proxyCountry" => "us", "followRedirect" => true ]);

Setelah ini, kita dapat membuat sesi curl menggunakan fungsi curl_init() . Kita dapat meneruskan URL yang ingin kita buat permintaannya sebagai argumen untuk pemanggilan fungsi.

 $ch = curl_init("https://api.geekflare.com/loadtime");

Sekarang kita dapat menggabungkan semuanya dengan mendefinisikan header dan body sebagai opsi untuk sesi. Untuk ini, kita akan menggunakan fungsi curl_setopt_array()

 curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_HTTPHEADER => $header, CURLOPT_POSTFIELDS => $body ]);

Untuk membuat permintaan, kita akan memanggil fungsi curl_exec()

 $response = curl_exec($ch);

Kami telah menyimpan respons dalam variabel $response , sehingga kami dapat menutup sesi untuk membebaskan sumber daya sistem yang digunakan oleh sesi.

 curl_close($ch);

Terakhir, kita dapat mencetak respons ke layar menggunakan var_dump .

 var_dump($response);

Pada akhirnya, file skrip Anda akan terlihat seperti ini

 <?php require_once('vendor/autoload.php'); $dotenv = Dotenv\Dotenv::createImmutable(__DIR__); $dotenv->load(); $header = ["Content-type: application/json", "x-api-key: " . $_ENV['API_KEY']]; $body = json_encode([ "url" => "google.com", "proxyCountry" => "us", "followRedirect" => true ]); $ch = curl_init("https://api.geekflare.com/loadtime"); curl_setopt_array($ch, [ CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_HTTPHEADER => $header, CURLOPT_POSTFIELDS => $body ]); $response = curl_exec($ch); curl_close($ch); var_dump($response); ?>

Saat kami menjalankan skrip menggunakan php with_curl.php , Anda akan mendapatkan output berikut:

 {"timestamp":1666083632547,"apiStatus":"success","apiCode":200,"meta":{"url":"google.com","followRedirect":true,"redirectedURL":"https://www.google.com/?gws_rd=ssl","test":{"id":"d20h1hb409qbfwm0g534l51asugpi5hl"}},"data":{"dns":12,"connect":17,"tls":6,"send":21,"wait":110,"total":114}}bool(true)

Permintaan berhasil diselesaikan, dan API merespons dengan data JSON0. Anda dapat menggunakan data ini sesuka Anda.

Dengan Guzzle

Di bagian terakhir dari tutorial ini, kita akan menggunakan Guzzle untuk menulis skrip. Seperti biasa, kita mulai dengan memasukkan boilerplate PHP di dalam with_guzzle.php

 <?php // all the code will go here ?>

Kemudian, kita dapat mengimpor ekstensi dan Klien Guzzle dan Objek Permintaan dan memuat variabel lingkungan.

 require_once('vendor/autoload.php'); use GuzzleHttp\Client; use GuzzleHttp\Psr7\Request;

Selanjutnya, kita dapat memuat variabel lingkungan.

 $dotenv = Dotenv\Dotenv::createImmutable(__DIR__); $dotenv->load();

Setelah itu, kita dapat membuat instance klien HTTP Guzzle

 $client = new GuzzleHttp\Client();

Kemudian kita dapat melanjutkan untuk membuat header untuk permintaan kita

 $headers = [ 'x-api-key' => $_ENV['API_KEY'], 'Content-Type' => 'application/json' ];

Selanjutnya, kita dapat menentukan isi permintaan

 $body = json_encode([ "url" => "google.com", "proxyCountry" => "us", "followRedirect" => true ]);

Kami kemudian dapat membuat permintaan dengan membuat instance kelas Permintaan dan meneruskan URL titik akhir API, header, dan badan.

 $request = new Request('POST', 'https://api.geekflare.com/loadtime', $headers, $body);

Kemudian kami dapat mengirim permintaan dengan menambahkan baris kode ini:

 $response = $client->sendAsync($request)->wait();

Setelah permintaan dikirim, kami dapat menerima isi permintaan sebagai berikut:

 $response_body = $response->getBody();

Pada akhirnya, kami dapat memecahkan kode respons JSON dan mencetak waktu buka

 echo "Loadtime: " . json_decode($response_body)->data->total . "\n";

Jadi, pada akhirnya, file tersebut akan terlihat seperti ini:

 <?php require_once('vendor/autoload.php'); use GuzzleHttp\Client; use GuzzleHttp\Psr7\Request; $dotenv = Dotenv\Dotenv::createImmutable(__DIR__); $dotenv->load(); $client = new GuzzleHttp\Client(); $headers = [ 'x-api-key' => $_ENV['API_KEY'], 'Content-Type' => 'application/json' ]; $body = json_encode([ "url" => "google.com", "proxyCountry" => "us", "followRedirect" => true ]); $request = new Request('POST', 'https://api.geekflare.com/loadtime', $headers, $body); $response = $client->sendAsync($request)->wait(); $response_body = $response->getBody(); echo "Loadtime: " . json_decode($response_body)->data->total . "\n"; ?>

Dan ketika Anda menjalankan skrip menggunakan perintah berikut:

 $php with_guzzle.php

Dan Anda akan melihat jawabannya:

 Loadtime: 130

Kesimpulan

Pada artikel ini, kami membahas berbagai klien yang mungkin ingin Anda gunakan saat membuat proyek PHP yang memerlukan API Geekflare.

Sementara skrip dalam proyek ini menggunakan baris perintah sebagai bentuk output utama, proyek dunia nyata dapat menyajikan respons di halaman web atau menulisnya ke file. Contoh skrip dalam artikel ini sederhana, tetapi menunjukkan konsep inti penggunaan Geekflare API. Untuk menggunakan API yang berbeda, Anda dapat mengubah titik akhir dan meneruskan opsi yang berbeda di badan permintaan.

Anda mungkin juga tertarik dengan cara menggunakan Geekflare DNS Lookup API di Javascript.