I have created REST API in codeigniter. REST sever created in codeigniter 3.0 and REST client created codeigniter 2.x.x.
I have wrote simple code for login. After login client created dashboard page. So for creating dashboard page I am sending so many request to REST server and it's taking too much time.
Below is the function for send request to server for dashboard. The function called after successfully login. So can please review my code and tell me is it correct way ? I have no idea about REST so and my system is too slow
public function show_dashboard()
{
$rest_url_module_names="http://MyAPI/Dashboard_api/module_names/token/".$this->session->userdata('userToken');
$data_module_names = $this->curl->simple_get($rest_url_module_names);
$data_module_names=json_decode($data_module_names,true);
if($data_module_names['status']=='success')
{
$data['module_names'] = $data_module_names['data'];
}
$rest_url_single_emp="http://MyAPI/Dashboard_api/single_emp/token/".$this->session->userdata('userToken');
$data_single_emp = $this->curl->simple_get($rest_url_single_emp);
$data_single_emp=json_decode($data_single_emp,true);
if($data_single_emp['status']=='success')
{
$data['single_emp'] = $data_single_emp['data'];
}
$rest_url_department_nm="http://MyAPI/Dashboard_api/department_nm/token/".$this->session->userdata('userToken');
$data_department_nm = $this->curl->simple_get($rest_url_department_nm);
$data_department_nm=json_decode($data_department_nm,true);
if($data_department_nm['status']=='success')
{
$data['department_nm'] = $data_department_nm['data'];
}
$rest_url_designation_nm="http://MyAPI/Dashboard_api/designation_nm/token/".$this->session->userdata('userToken');
$data_designation_nm = $this->curl->simple_get($rest_url_designation_nm);
$data_designation_nm=json_decode($data_designation_nm,true);
if($data_designation_nm['status']=='success')
{
$data['designation_nm'] = $data_designation_nm['data'];
}
$rest_url_supervisor_nm="http://MyAPI/Dashboard_api/supervisor_nm/token/".$this->session->userdata('userToken');
$data_supervisor_nm = $this->curl->simple_get($rest_url_supervisor_nm);
$data_supervisor_nm=json_decode($data_supervisor_nm,true);
if($data_supervisor_nm['status']=='success')
{
$data['supervisor_nm'] = $data_supervisor_nm['data'];
}
$rest_url_sub_ordinates_nm="http://MyAPI/Dashboard_api/sub_ordinates_nm/token/".$this->session->userdata('userToken');
$data_sub_ordinates_nm = $this->curl->simple_get($rest_url_sub_ordinates_nm);
$data_sub_ordinates_nm=json_decode($data_sub_ordinates_nm,true);
if($data_sub_ordinates_nm['status']=='success')
{
$data['sub_ordinates_nm'] = $data_sub_ordinates_nm['data'];
}
$rest_url_profile_pic="http://MyAPI/Dashboard_api/profile_pic/token/".$this->session->userdata('userToken');
$data_profile_pic = $this->curl->simple_get($rest_url_profile_pic);
$data_profile_pic=json_decode($data_profile_pic,true);
if($data_profile_pic['status']=='success')
{
$data['profile_pic'] = $data_profile_pic['data'];
}
$rest_url_leave_type_dtls="http://MyAPI/Dashboard_api/leave_type_dtls/token/".$this->session->userdata('userToken');
$data_leave_type_dtls = $this->curl->simple_get($rest_url_leave_type_dtls);
$data_leave_type_dtls=json_decode($data_leave_type_dtls,true);
if($data_leave_type_dtls['status']=='success')
{
$data['leave_type_dtls'] = $data_leave_type_dtls['data'];
}
$rest_url_All_emp_pending_leave_lists="http://MyAPI/Dashboard_api/all_emp_pending_leave_lists/token/".$this->session->userdata('userToken');
$data_All_emp_pending_leave_lists = $this->curl->simple_get($rest_url_All_emp_pending_leave_lists);
$data_All_emp_pending_leave_lists=json_decode($data_All_emp_pending_leave_lists,true);
if($data_All_emp_pending_leave_lists['status']=='success')
{
$data['All_emp_pending_leave_lists'] = $data_All_emp_pending_leave_lists['data'];
}
$rest_url_general_applying_leave_rule_dtls="http://MyAPI/Dashboard_api/general_applying_leave_rule_dtls/token/".$this->session->userdata('userToken');
$data_general_applying_leave_rule_dtls = $this->curl->simple_get($rest_url_general_applying_leave_rule_dtls);
$data_general_applying_leave_rule_dtls=json_decode($data_general_applying_leave_rule_dtls,true);
if($data_general_applying_leave_rule_dtls['status']=='success')
{
$data['general_applying_leave_rule_dtls'] = $data_general_applying_leave_rule_dtls['data'];
}
$rest_url_weekend="http://MyAPI/Dashboard_api/weekend/a_weekend/Every/token/".$this->session->userdata('userToken');
$data_weekend = $this->curl->simple_get($rest_url_weekend);
$data_weekend=json_decode($data_weekend,true);
if($data_weekend['status']=='success')
{
$data['weekend'] = $data_weekend['data'];
}
$rest_url_First_weekoff="http://MyAPI/Dashboard_api/First_weekoff/a_weekend/First/token/".$this->session->userdata('userToken');
$data_First_weekoff = $this->curl->simple_get($rest_url_First_weekoff);
$data_First_weekoff=json_decode($data_First_weekoff,true);
if($data_First_weekoff['status']=='success')
{
$data['First_weekoff'] = $data_First_weekoff['data'];
}
$rest_url_department_dtls="http://MyAPI/Department_api/department_dtls/token/".$this->session->userdata('userToken');
$data_department_dtls = $this->curl->simple_get($rest_url_department_dtls);
$data_department_dtls=json_decode($data_department_dtls,true);
if($data_department_dtls['status']=='success')
{
$data['department_dtls'] = $data_department_dtls['data'];
}
$rest_url_parentmoduleIdex="http://MyAPI/Dashboard_api/parentmoduleIdex/Idex/Dashboard";
$data_parentmoduleIdex = $this->curl->simple_get($rest_url_parentmoduleIdex);
$data_parentmoduleIdex=json_decode($data_parentmoduleIdex,true);
if($data_parentmoduleIdex['status']=='success')
{
$data['parentmoduleIdex'] = $data_parentmoduleIdex['data'];
}
$sub_module_menu_selection = array();
$sub_module_menu_selection['sub_module_menu_selection'] = 'Dashboard';
$this->session->set_userdata($sub_module_menu_selection);
$this->load->view('pages/header',$data); //included header
$this->load->view('pages/sidebar_menu',$data); //included sidebar
$this->load->view('dashboard/home',$data);
$this->load->view('pages/footer',$data); //included footer
}
In every controller I have added header,sidebar_menu and footer. Means repeating code. Can you please tell me how to manage repeating code ?
Also suggest me if need change architecture. Means I have load header,footer,menu in every page and all pages are dynamic so it's take a time for load and I want to reduce time so please guide me.