Web Services Sederhana dengan Methods HTTP POST

Web Services – Kebanyakan web services yang diakses menggunakan methods HTTP POST atau PUT, selalu membutuhkan authentikasi untuk dapat menggunakan resources tersebut. Authentikasi tersebut digunakan untuk mengontrol siapa saja yang dapat mengakses dan memodifikasi resources yang ada di dalam services terkait.

Berikut ini adalah contoh sederhana dari web services yang menggunakan method POST. Adapun skenario dari contoh berikut ini adalah:

  • Terdapat sebuah services sederhana yang menerima input dari klien kemudian service akan mengembalikan input tersebut sebagai output dalam bentuk yang sama seperti input awal dari klien.
  • Untuk implementasi saya gunakan localhost menggunakan XAMPP.

Membangun Service

Pertama kita buat terlebih dahulu service tersebut, kita beri nama io_services.php dan saya simpan di localhost, di dalam folder sistem1 (melanjutkan dari tutorial sebelumnya).

<?
$input = file_get_contents("php://input");

file_put_contents("php://output", $input);
?>

Selanjutnya kita buat script dari sisi klien yang mengakses services tersebut menggunakan HTTP POST. Script tersebut saya beri nama dengan curl_post.php

<?php
$url = 'http://localhost/sistem1/io_services.php';

$data = <<<XML
<text>Ini adalah input anda!</text>
XML;

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$response = curl_exec($ch);

curl_close($ch);

echo $response;
?>

Untuk mencoba, silakan jalankan curl_post.php melalui browser.

Dari contoh di atas, kita dapat melihat perbedaan dengan tutorial sebelumnya, Mengakses Resources Menggunakan Methods HTTP GET. Pada tutorial kali ini kita menyiapkan suatu data yang dikirimkan ke server. Service yang berada di server akan mengembalikan data yang kita kirimkan dengan methods yang sama seperti tutorial sebelumnya, yaitu GET.

Di dalam arsitektur REST, HTTP POST digunakan untuk mengupdate suatu resources dan response nya tidak mengandung muatan baru.

Selamat mencoba!

Leave a Comment