In this post, I will show you How to use Retrofit in Android. Retrofit is a new born baby of web services such as AsyncTask, JSONPars...

How to Perform Rest API using Retrofit in Android (Part-1) How to Perform Rest API using Retrofit in Android (Part-1)

How to Perform Rest API using Retrofit in Android (Part-1)

How to Perform Rest API using Retrofit in Android (Part-1)

Rest using Retrofit
In this post, I will show you How to use Retrofit in Android. Retrofit is a new born baby of web services such as AsyncTask, JSONParsing and Volley. This post is Split into Two Parts.
  1. First Part Contains Architecture of Retrofit and How to create MySQL DB and PHP Scripts for Basic Operations.
  2. Second Part Contains how to perform Retrofit Operations in Android.

Architecture of Retrofit Web Service

We need 3 Things for Complete Retrofit Architecture.
  1. RestAdapter
  2. An Interface with all networking methods and parameters.
  3. Getter Setter Class to save data coming from server.

Project Structure:

Create MySQL DataBase and PHP Scripts.
Following image shows my database structure.

PHP Scripts:

I created db_config.php which contains the script to connect DB.
<?php
/**
* Database config variables
*/
define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "retrofit_example");

$db = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_DATABASE);
 
if($db == false){
 echo "No connection";
}                        
?>
I created db_function.php which contains the script to execute queries.
<?php
include("db_config.php");
 
function insertData($name,$age,$mobile,$email){
 global $db;
 $result=mysqli_query($db , "INSERT INTO personal_detail(name,age,mobile,email) VALUES('$name','$age','$mobile','$email')")or die(mysqli_error($db));
 return $result;
}

function displayAll(){
 global $db;
 $result=mysqli_query($db , "SELECT * FROM personal_detail")or die(mysqli_error($db));
 return $result;
}

function deleteData($id){
 global $db;
 $result=mysqli_query($db , "DELETE FROM personal_detail WHERE id = '$id'")or die(mysqli_error($db));
 return $result;
}

function updateData($id,$name,$age,$mobile,$email){
 global $db;
 $result=mysqli_query($db , "UPDATE `personal_detail` SET `name`='$name',`age`='$age', `mobile`='$mobile', `email`='$email' WHERE id = '$id'")or die(mysqli_error($db));
 return $result;
}
?>
I created insertData.php which contains the script to insert data.
<?php
include ('db_function.php');
$response = array();
 
//Getting post data 
$name = $_REQUEST['name'];
$age = $_REQUEST['age'];
$mobile = $_REQUEST['mobile'];
$email = $_REQUEST['email'];

if (isset($_REQUEST['name']) && isset($_REQUEST['age']) && isset($_REQUEST['mobile']) && isset($_REQUEST['email'])){
 
 $result=insertData($name,$age,$mobile,$email);
 if ($result) {
  $response["success"] = 1;
  $response["message"] = "Successfully saved"; 
  echo json_encode($response);
 } 
 else {
  $response["success"] = 0;
  $response["message"] = "Oops! An error occurred."; 
  echo json_encode($response);
 }
} 
else {
 $response["success"] = 0;
 $response["message"] = "Required field(s) is missing";  
 echo json_encode($response);
}
?>
I created displayAll.php which contains the script to display all data from DB.
<?php
include ('db_function.php');
 
$response = array();
$result = displayAll(); 

if(mysqli_num_rows($result)>0) {

 $response["details"] = array();
 while ($row = mysqli_fetch_array($result)){
  $data = array();
  $data["id"]=$row["id"];
  $data["name"]=$row["name"];
  $data["age"]=$row["age"];
  $data["mobile"]=$row["mobile"];
  $data["email"]=$row["email"];
  array_push($response["details"], $data);
 }
  if($result){
   $response["success"] = 1;
   $response["message"] = "Successfully Displayed";
   echo json_encode($response);
  }
  else{
   $response["success"] = 0;
   $response["message"] = "Try Again";
   echo json_encode($response);
  }
}
else {
 // no results found
 $response["success"] = 0;
 $response["message"] = "No Details Found";
 echo json_encode($response);
}
if($db == true){
 mysqli_close($db); //Closing the Connection
}
?>
I created deleteData.php which contains the script to delete a data from DB.
<?php
include ('db_function.php');
$response = array();

//Getting post data 
$id = $_REQUEST["id"];

if(isset($id)){
 
 $result = deleteData($id); 

 if($result){
  $response["success"] = 1;
  $response["message"] = "Successfully Deleted";
  echo json_encode($response);
 }
 else{
  $response["success"] = 0;
  $response["message"] = "Try Again";
  echo json_encode($response);
 }
}
else {
 // no results found
 $response["success"] = 0;
 $response["message"] = "Required Fields are Missing";
 echo json_encode($response);
}
if($db == true){
 mysqli_close($db);
}
?>
I created updateData.php which contains the script to update a data from DB.
<?php
include ('db_function.php');
$response = array();
 
//Getting post data 
$id = $_REQUEST["id"];
$name = $_REQUEST['name'];
$age = $_REQUEST['age'];
$mobile = $_REQUEST['mobile'];
$email = $_REQUEST['email'];

if (isset($id) && isset($name) && isset($age) && isset($mobile) && isset($email)){
 
 $result=updateData($id,$name,$age,$mobile,$email);
 if ($result) {
  $response["success"] = 1;
  $response["message"] = "Successfully updated"; 
  echo json_encode($response);
 } 
 else {
  $response["success"] = 0;
  $response["message"] = "Oops! An error occurred."; 
  echo json_encode($response);
 }
} 
else {
 $response["success"] = 0;
 $response["message"] = "Required field(s) is missing";  
 echo json_encode($response);
}
?>

References:

  1. MakeInfo:Retrofit Android Tutorial
  2. Retrofit Android example

Goto Next Part:

2 comments:

  1. You are wrong. You can't get POST values with $_REQUEST method.

    ReplyDelete
  2. The Purpose of using $_REQUEST is to accept data via POST or GET Methods

    ReplyDelete

Please Comment about the Posts and Blog