【问题标题】:Calling REST API from controller codeigniter从控制器 codeigniter 调用 REST API
【发布时间】:2017-05-06 09:32:59
【问题描述】:

我是代码点火器的新手,对于我的项目,我必须创建一个 REST API。

我有一个可用的 REST API。

从 ajax 调用中调用 API 的正确方法是什么?

View -> Controller -> REST

View ->REST

如果是View -> Controller -> REST,如何从控制器调用REST API?

这是我的类,它为用户扩展了 rest_controller

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

这是来自我的登录页面的登录用户的 ajax 调用

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

【问题讨论】:

  • 你可以使用curlfile_get_contents
  • 感谢您的快速回复。问题是,这个项目是为我分配的,curl 和 file_get_contents 尚未涵盖。如果有其他方法请告诉
  • 你有没有按照API文档在你的项目中放置API文件?
  • 您是说您需要自己的 Rest API 吗?问题不是很清楚。如果您有一个控制器供您休息,应该能够使用 ajax 调用该控制器,而无需使用视图
  • @HikmatSijapati 是的,我在正确的路径中添加了相关文件。

标签: php jquery rest codeigniter api


【解决方案1】:

是的,你可以通过 ajax 调用 rest apil。

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

});

传递方法所需的数据。还要检查您的请求类型是 POST 还是 GET。

【讨论】:

  • 不支持使用 jsonp 发布...不支持。如果您正在设置 jsonp,您最好解释一下如何生成输出以及为什么要使用它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-29
  • 2016-11-14
  • 2018-07-30
  • 2019-05-30
  • 2018-10-29
  • 2017-10-14
  • 2019-07-06
相关资源
最近更新 更多