Senin, 09 April 2018

Rest API

pertemuan kali ini saya akan membahas tentang tugas 5 ya itu web service yg menggunakan REST API , dengan untuk menambah dan menampilkan data mahasiswa.

langkah pertama 
mernyerta kan coding di bawah ini  dengan menyimpan dengan estensi restmhsw.php

<?php
// Check for the path elements
// Turn off error reporting
error_reporting(0);

// Report runtime errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Report all errors
error_reporting(E_ALL);

// Same as error_reporting(E_ALL);
ini_set("error_reporting", E_ALL);

// Report all errors except E_NOTICE
error_reporting(E_ALL & ~E_NOTICE);

$path = $_SERVER['PATH_INFO'];   
if ($path != null) {
$path_params = spliti ("/", $path);
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//
    $con=mysqli_connect("localhost","root","","akademik");
// Check connection
    if (mysqli_connect_errno())
    {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

//
$input = file_get_contents("php://input");
$xml = simplexml_load_string($input);
        $querycek = "SELECT nim,nama,prodi FROM mahasiswa WHERE nim ='$xml->nim'";
        echo "query select ".$querycek;
    //if ($result=mysqli_query($con,querycek))
    //{
        $result=mysqli_query($con,$querycek);
        // print_r($result);

        while ($row=mysqli_fetch_row($result))
        {
        printf ("%s (%s)\n",$row[0],$row[1]);
        }
        $rowcount=mysqli_num_rows($result);
        echo $rowcount . '<br />';
       
        if ( $rowcount == 0)
        {
        $query = "INSERT INTO mahasiswa (
        nim,
        nama,
        prodi)
        VALUES (               
        '$xml->nim',
        '$xml->nama',
        '$xml->progdi')";
        echo "query ".$query;
        mysqli_query($con,$query);
        }
        else if ($rowcount > 0)
        {
        $query = "UPDATE mahasiswa SET
        nama = '$xml->nama',
        prodi = '$xml->progdi'
        WHERE nim ='$xml->nim'";
        echo "query ".$query;
        mysqli_query($con,$query);
        }
    //}
mysqli_close($con);
}

?>  



langkah ke dua anda harus menyedikan koneksi nya kemudian dengan coding di bawah ini dengan menyimpan nya dengan estensi restjson.php 

<form method="POST" action="">
<table>
<tr>
<td>NIM</td>
<td><input type="text" name="nim" id="nim"></td>
</tr>
<tr>
<td><input type="submit" name="submit" id="submit" value="Cek"></td>
<td>
</td>
<?php

if(isset($_POST['submit'])){
    $arr = Array();
    $nim = $_POST['nim'];
    $con=mysqli_connect("localhost","root","","akademik");
    $result = mysqli_query($con,"SELECT * FROM mahasiswa WHERE nim='$nim'");
    while ($row=mysqli_fetch_assoc($result)){
        $arr[] = $row;
    }
    echo json_encode($arr);
}
?>



<?php
// Check for the path elements
// Turn off error reporting
error_reporting(0);

// Report runtime errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Report all errors
error_reporting(E_ALL);

// Same as error_reporting(E_ALL);
ini_set("error_reporting", E_ALL);

// Report all errors except E_NOTICE
error_reporting(E_ALL & ~E_NOTICE);

$path = $_SERVER['PATH_INFO'];   
if ($path != null) {
$path_params = spliti ("/", $path);
}

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

if ($path_params[1] == null) {

        $con=mysqli_connect("localhost","root","","akademik");
// Check connection
    if (mysqli_connect_errno())
    {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    $sql="SELECT nim,nama,prodi FROM mahasiswa";
    if ($result=mysqli_query($con,$sql))
    {
  // Fetch one and one row
       $arr = Array();
    while ($row=mysqli_fetch_assoc($result))
        {
         $arr[] = $row;
        }
         echo json_encode($arr);
  // Free result set
    mysqli_free_result($result);
    }
   
    mysqli_close($con);

}
else if ($_SERVER['REQUEST_METHOD'] == 'GET') {
if ($path_params[1] != null) {
        $con=mysqli_connect("localhost","root","","akademik");
// Check connection
    if (mysqli_connect_errno())
    {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    $sql="SELECT nim,nama,prodi FROM mahasiswa where nim = '$path_params[1]'";
   
    if ($result=mysqli_query($con,$sql))
    {
  // Fetch one and one row
       $arr = Array();
    while ($row=mysqli_fetch_assoc($result))
        {
         $arr[] = $row;
        }
         echo json_encode($arr);
    mysqli_free_result($result);
    }
   
    mysqli_close($con);

   
}
}
   
}
?>  


dan langkah terahir anda juga menambahkan  untuk menambahkan imputan nya dengan coding di bahwah ini dan di simpan dengan estensi tambah.php

<html>
<head>
<title>Rest Web Services</title>
</head>
<body>
<?php
if (isset ($_POST['nim'])) {
$url = 'http://localhost/RestApi/restmhsw2.php';
$data = "<mahasiswa>
<nim>" . $_POST['nim'] . "</nim>
<nama>" . $_POST['nama'] ."</nama>
<progdi>" . $_POST['progdi'] . "</progdi>
</mahasiswa>";
//echo "datanya ".$data;
$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);
echo "response ".$response;

curl_close($ch);
}
?>

<form method="POST" action="tambah.php">
<table>
<tr>
<td>NIM</td>
<td><input type="text" name="nim" id="nim"></td>
</tr>
<tr>
<td>Nama</td>
<td><input type="text" name="nama" id="nama"></td>
</tr>
<tr>
<td>Progdi</td>
<td><input type="text" name="progdi" id="progdi"></td>
</tr>
<tr>
<tr>
<td><input type="submit" name="submit" id="submit" value="Tambah"></td>
<td><a href="restjson.php">Lihat data json</a></td>
</tr>
</table>
</form>
</body>
</html>

 



sekian yang saya contoh kan tentang program php REST semoga bermanfaat untuk rekan rekan

Tidak ada komentar:

Posting Komentar