codeigniter
Codeigniter에서 API 만들기
수색…
소개
CodeIgniter는 .pdf, .csv, .image 등과 같은 API 출력 및 다른 유형의 문서 출력에 매우 유용한 자동 초기화 된 Output 클래스를 제공합니다.
참고 : - Codeigniter 기본 문서 유형은 HTML로 application / json으로 변경하고, API는 json 유형이어야합니다.
이름이 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]'
);
}
}
?>
API 컨트롤러에서 다음 함수 추가 API에서 일부 데이터 검색
/*****************************
@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)));
}
특정 사용자의 개인 데이터에 대한 액세스 허용을위한 사용자 API 로그인
/*****************************
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')));
}
}
사용자는 로그인 한 사용자의 세션을 파괴하기 위해 API를 로그 아웃합니다.
/***************************
log out user
***************************/
public function logout(){
//delete all session
session_destroy();
$this->output->set_output(json_encode(array('status'=>true,'msg'=>'log Out successfully')));
}
보호 된 API 생성
이 API는 공개 사용자가 액세스 할 수 없으며 인증이 필요합니다.
/***************************
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
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow