codeigniter
Gör API i kodigniter
Sök…
Introduktion
CodeIgniter tillhandahåller automatisk initierad utgångsklass som är mycket användbar för att skapa API och olika typer av dokument som matas ut som .pdf, .csv, .image, etc. ...
OBS: - Kodigniters standarddokumenttyp är HTML ändra den till applikation / json, API måste vara typ av json
skapa den nya kontrollern med namnet API
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Api extends CI_Controller {
//default value
private $login_credential;
function __construct() {
parent::__construct();
//for user authentication
$this->load->library('session');
//set page header type Json as default
$this->output->set_content_type('application/json');
//default credentials for user login
$this->login_credential = array(
'username'=>'admin',
'password'=>'test@123',
'email'=> '[email protected]'
);
}
}
?>
Hämta data från API-tilläggsföljande funktion i API-kontrollen
/*****************************
@return all events
****************************/
public function getallevents(){
//get data from model
$events = array(
array('Event 1', '2015-04-03'),
array('Event 2', '2015-04-03'),
array('Event 3', '2015-06-16'),
array('Event 4', '2015-06-29'),
array('Event 5', '2015-07-04'),
array('Event 6', '2015-12-25'),
array('Event 7', '2016-01-01')
);
$this->output->set_output(json_encode(array('status'=>true,'events'=>$events)));
}
logga in användar API för att tillåta åtkomst av vissa privata data för pertikulär användare
/*****************************
login user
@required : username and password via post method only
@return user data if login successfull otherwise error message
****************************/
public function login(){
$username=$this->input->post('username');
$password=$this->input->post('password');
if($username && $password){
//check username and password
if($this->login_credential['username']==$username && $this->login_credential['password']==$password){
//set user data to store in session
$userdata = array(
'username' => $this->login_credential['username'],
'email' => $this->login_credential['email'],
'logged_in' => true
);
//set session
$this->session->set_userdata($userdata);
//display log in successfull msg
$this->output->set_output(json_encode(array('status'=>true,'msg'=>'log in successfully','data'=>$userdata)));
}else{
//wrong username or password
$this->output->set_output(json_encode(array('status'=>false,'msg'=>'invalid Username or password')));
}
}else{
//when username and password not set
$this->output->set_output(json_encode(array('status'=>false,'msg'=>'provide Username and password')));
}
}
användarlogga ut api för att förstöra sessionen för inloggad användare
/***************************
log out user
***************************/
public function logout(){
//delete all session
session_destroy();
$this->output->set_output(json_encode(array('status'=>true,'msg'=>'log Out successfully')));
}
skapa skyddad api
Detta API är inte tillgängligt för allmän användare, autentisering krävs
/***************************
this is protected api this is not accessible if you are not loged in
***************************/
public function protectedapi(){
if($this->session->userdata('logged_in')){
//this section only accessible when user loged in
$this->output->set_output(json_encode(array('status'=>true,'msg'=>'Access allowed')));
}else{
$this->output->set_output(json_encode(array('status'=>true,'msg'=>'Access denied')));
}
}
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow