サーチ…


前書き

CodeIgniterは自動初期化されたOutputクラスを提供しています。このクラスは、PDFや.pdf、.csv、.imageなどの出力されるさまざまなタイプのドキュメントを作成するのに非常に便利です。

注: - Codeigniterのデフォルトのドキュメントタイプは、HTMLでapplication / jsonに、APIはjsonのタイプである必要があります。

nameという名前の新しいコントローラを作成する

<?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)));
}

郵便配達 ここに画像の説明を入力

perticularユーザのためのいくつかの私的なデータへのアクセスを許可するためのログイン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