Penjelasan Umum dan Alat Tes API

Sebelum masuk ke pembahasan yang banyak prateknya, tentu saya akan membahas yang paling umum dilakukan selama proses belajar Anda pada kelas ini. Terutama beberapa kode yang berulang akan digunakan, sebagai gantinya maka saya harus terangkan dahulu diawal.

Daftar isi:

Apa Itu Header PHP?

Berdasarkan dokumentasi resmi PHP header adalah mengirimkan header HTTP mentah ke klien, tentu sebagian diantara Anda pasti menggunakan header untuk memindahkan halaman ke halaman lain contohnya header('Location:index.php'). Tentu bukan sekedar mengalihkan halaman tetapi juga akan memberikan lingkup header pada klien. Agar pengetahuan bertambah luas coba Anda buka web browser seperti Google Chrome lalu buka devTools -> Network, silakan perhatikan gambar dibawah ini:

by java2blog.com Sumber: java2blog.com

Tentu sampai sini Anda akan melihat ternyata banyak sekali opsi yang bisa di berikan terhadap fungsi header. Tetapi pada kelas ini hanya 3 saja yang akan digunakan berdasarkan skrip dibawah ini.

header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: GET");

Saya akan bahas satu persatu:

  • Access-Control-Allow-Origin Header tersebut akan menunjukan apakah respon yang diberikan bisa dibagikan dengan meminta kode dari yang diberikan. Jika nilai yang diberikan ada * (semua) maka setiap klien bisa menggunakan data respon tersebut. Misalnya jika nilai yang diberikan ialah https://sekolahprogram.com maka hanya domain tersebutlah yang bisa digunakan untuk mengakses data respon yang diminta. Anda bisa mempelajari hal ini dengan kata kunci cors (Cross-origin resource sharing).
  • Content-Type Jika Anda lihat pada gambar yang diatas di header akan memberikan text/html; charset=UTF-8 karena tipe konten bersifat skrip HTML. Sedangkan karena Anda belajar untuk membuat REST API maka yang dihasilkan data JSon maka menjadi seperti skrip diatas. Ada banyak sekali yang bisa di tentukan pada header ini contohnya application/json, application/pdf, text/plain, multipart/form-data, dan lainnya.
  • Access-Control-Allow-Methods Header ini akan menentukan metode atau metode diperbolehkan ketika mengakses sumber daya dalam menanggapi permintaan seperti GET, POST, UPDATE, DELETE. Anda hanya akan memanfaatkan 4 metode tersebut yang sebenarnya masih banyak lagi.

Berikan Respon Balik!

Disini akan membahas hasil unpan balik respon yang diminta seperti status kode 200, 404, 403, atau lainnya. Hal lain juga akan memberikan data yang dihasilkan dari REST API yang Anda buat nantinya. Lihat skrip berikut ini.

http_response_code(200);

echo json_encode(/* data */);

Kode respon yang akan diberikan tergantung dari segi masalah yang dihadapi, jika data yang akan diminta tidak ada maka Anda harus memberikan nilai 404. Sedangkan 200 maka OKE dan masih banyak yang lainnya, tentu Anda bisa belajar lewat sini HTTP response status codes.

Kemudian json_encode akan mengode untai (string) atau larik (array) menjadi json, itu berlawanan dengan json_decode berikut dokumen resmi PHP JSON Functions.

Metode Tidak Sesuai

Jadi jika metode yang di kirim dari klien tidak sesuai dengan metode yang telah diterapkan pada kode tautan maka akan memberikan notifikasi pesan galat. Lihat skrip berikut ini.

if ($_SERVER['REQUEST_METHOD'] !== 'GET') {

    http_response_code(405);

    echo json_encode([
        'message' => 'Method tidak ditemukan.'
    ]);

    return;
}

Jadi seperti ini! Bila Anda mengirim permintaan (request) dengan metode POST, sedangkan skrip diatas hanya menerima metode GET maka akan memberikan respon pesan Method tidak ditemukan.. Kode !== bersifat NOT Identic yang berarti kebalikannya.

Alat Tes API (Insomnia)

Sebagai alat tes API saya menggunakan Insomnia dan sebenarnya masih banyak alat lain yang bisa dimanfaatkan salah satunya seperti Postman. Saya sendiri lebih suka menggunakan Insomnia karena bersifat sumber terbuka, tentu masih ada beberapa kekurangan dan kelebihan jika di bandingkan dengan Postman. Silakan Anda pilih yang mana baiknya, sebagai langkah awal untuk ikuti kelas ini tentu saya akan merekomendasikan untuk menggunakan Insomnia.