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:

Share this

Related Posts

Previous
Next Post »

4 comments

comments
29 December 2016 at 11:55 delete

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

Reply
avatar
29 December 2016 at 22:57 delete

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

Reply
avatar
16 May 2017 at 11:58 delete

This information is impressive; I am inspired with your post writing style & how continuously you describe this topic. After reading your post, thanks for taking the time to discuss this, I feel happy about it and I love learning more about this topic.Android Training institute in chennai with placement | Best Android Training in velachery

Reply
avatar

Please Comment about the Posts and Blog