2016-12-21 15 views
1

私はコードイグナイタの初心者です。私のプロジェクトでは、REST APIを作成する必要があります。コントローラcodeigniterからREST APIを呼び出す

私は実際のREST APIを持っています。

ajax呼び出しからAPIを呼び出す正しい方法は何ですか?

View -> Controller -> REST 

または

View ->REST 

それは、コントローラからのREST APIを呼び出す方法をView -> Controller -> REST、ある場合には?

これはこれは、ログインユーザ

function signIn(){ 
    var username = $('#signInUn').val(); 
    var password = $('#signInPw').val(); 
    $.ajax({ 
     method: "GET", 
     url : "/infoshare/index.php/user/user/req/login/un/"+username+"/pw/"+password, 
     dataType: 'JSON', 
     success: function(data){ 
      var response = data.response; 
      var status = data.status; 
      if(status == 200){ 
       var userId = response[0].user_id; 
       //success of user 
      }else{ 
       console.log(data); 
      } 
     }, 
     error: function(status){ 
      console.log("Error occured"); 
     } 
    }); 
} 
+0

あなたは 'curl'または' file_get_contents'を使用することができます –

+0

迅速な対応をありがとうございます。問題は、このプロジェクトは私の割り当て用であり、カールとfile_get_contentsはまだカバーされていないということです。別の方法がある場合は –

+0

に教えてくださいAPIドキュメントに従ってプロジェクトにAPIファイルを配置しましたか? –

答えて

0

のための私のログインページからajexコールはいあなたは、AJAXを通じて残りのapilを呼び出すことができているユーザー

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

require APPPATH . '/libraries/REST_Controller.php'; 

class User extends REST_Controller { 

    function _construct(){ 
     parent::_construct(); 
     $this->load->database(); 
     $this->load->model('usermodel'); 

    } 

    public function user_get(){ 
     $this->load->model('usermodel'); 
     $requestType = $this->get('req');//get method request 
     switch ($requestType) { 
      case 'login': 
       $username = $this->get('un'); 
       $password = $this->get('pw'); 
       $user = $this->usermodel->getUser($username, $password); 
       if ($user){ 
        $this->response($user, REST_Controller::HTTP_OK); 
       }else{ 
        $this->response([ 
         'status' => FALSE, 
         'message' => 'No users were found' 
        ], REST_Controller::HTTP_NOT_FOUND); 
       } 
       break; 
      default: 
       break; 
     } 
    } 
} 

ためrest_controllerを拡張する私のクラスです。

$.ajax({ 
type: "GET", 
data: {id:1123}, 
url: "http://localhost:8080/restws/json/user/get", 
success: function(data){   
alert(data); 
} 

});

メソッドに必要なデータを渡します。また、POSTまたはGETの場合は、要求のタイプを確認してください。

+0

jsonpとの投稿のようなものはサポートされていません。 jsonpを設定している場合は、出力の生成方法とそれをなぜ使用しているのかをよく説明してください – charlietfl

関連する問題