【发布时间】: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");
}
});
}
【问题讨论】:
-
你可以使用
curl或file_get_contents -
感谢您的快速回复。问题是,这个项目是为我分配的,curl 和 file_get_contents 尚未涵盖。如果有其他方法请告诉
-
你有没有按照API文档在你的项目中放置API文件?
-
您是说您需要自己的 Rest API 吗?问题不是很清楚。如果您有一个控制器供您休息,应该能够使用 ajax 调用该控制器,而无需使用视图
-
@HikmatSijapati 是的,我在正确的路径中添加了相关文件。
标签: php jquery rest codeigniter api