I'm trying to build a REST API in PHP. My API needs to be able to upload files and get user information via the $_POST method. Any body that can help me to create a REST API and also helps me to find out what components I need for creating an API.
<?php
 header("content-type:application/json");
 $userid=$_POST['user_id'];
 $email=$_POST['email'];
 $fname=$_POST['firstname'];
 $lname=$_POST['lastname'];
 // include db connect class
    require_once __DIR__ . '/db_connect.php';
    // connecting to db
    $db = new DB_CONNECT();
 //$result=mysql_query("select * form user");
 $sql="UPDATE user SET email='$email',fname='$fname',lname='$lname' WHERE userid='$userid'";
 $result = mysql_query($sql);
 if ($result) {
        // successfully inserted into database
        $response["code"] = 1;
        $response["message"] = "successfully updated";
        // echoing JSON response
        echo json_encode($response);
    } else {
        // failed to insert row
        $response["code"] = 2;
        $response["message"] = "Oops! failed to insert data";
        // echoing JSON response
        echo json_encode($response);
    }
 //file uploading 
 if (empty($_FILES) || $_FILES['file']['error']) {
  //die('{"OK": 0, "info": "Failed to move uploaded file."}');
  $response["code"] = 2;
  $response["message"] = "Oops! An File uploading error occurred.";
  echo json_encode($response);
}
$chunk = isset($_REQUEST["chunk"]) ? intval($_REQUEST["chunk"]) : 0;
$chunks = isset($_REQUEST["chunks"]) ? intval($_REQUEST["chunks"]) : 0;
$fileName = isset($_REQUEST["name"]) ? $_REQUEST["name"] : $_FILES["file"]["name"];
$filePath = "uploads/$fileName";
// Open temp file
$out = @fopen("{$filePath}.part", $chunk == 0 ? "wb" : "ab");
if ($out) {
  // Read binary input stream and append it to temp file
  $in = @fopen($_FILES['file']['tmp_name'], "rb");
  if ($in) {
    while ($buff = fread($in, 4096))
          fwrite($out, $buff);
       //print($out);
     // echo sizeof($out);
  } else
  //  die('{"OK": 0, "info": "Failed to open input stream."}');
 $response["code"] = 2;
 $response["message"] = "Oops!  Failed to open input Stream error occurred.";
 echo json_encode($response);
  @fclose($in);
  @fclose($out);
  @unlink($_FILES['file']['tmp_name']);
} else{
//  die('{"OK": 0, "info": "Failed to open output stream."}');
 $response["code"] = 2;
        $response["message"] = "Oops! Failed to open output error occurred.";
        echo json_encode($response);
 }
// Check if file has been uploaded
if (!$chunks || $chunk == $chunks - 1) {
  // Strip the temp .part suffix off
  rename("{$filePath}.part", $filePath);
}
//die('{"OK": 1, "info": "Upload successful."}');
 $response["code"] = 0;
    $response["userid"]=$_POST['user_id'];
    $response["email"]=$_POST['email'];
    $response["firstname"]=$_POST['firstname'];
    $response["lastname"]=$_POST['lastname'];
    //$resopnse["file"]=$_POST['file'];
    $response["message"] = "Required field(s) is missing";
    // echoing JSON response
    echo json_encode($response);
?>
This my .htaccess code
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ %{ENV:BASE} index.php [QSA,L]
 
     
    