我已经创建了REST API,并且想在codeigniter控制器中使用自己创建的API。
我创建的REST API 控制器(example.php)
class Example extends REST_Controller {
public function __construct() {
parent::__construct();
$this->load->model('user');
}
public function user_fetch_post() {
//returns all rows if the id parameter doesn't exist,
//otherwise single row will be returned
$id = $this->input->post('id');
$users = $this->user->getRows($id);
//check if the user data exists
if(!empty($users)){
//set the response and exit
$this->response($users, REST_Controller::HTTP_OK);
}else{
//set the response and exit
$this->response([
'status' => FALSE,
'message' => 'No user were found.'
], REST_Controller::HTTP_NOT_FOUND);
}
}
模型(user.php)
function getRows($id = ""){
if(!empty($id)){
$query = $this->db->get_where('users', array('id' => $id));
return $query->row_array();
}else{
$query = $this->db->get('users');
return $query->result_array();
}
}
在这里,我想调用我创建的api(来自example.php),以便通过基本身份验证(uname-admin,pwd-1234)在welcome.php控制器中获取记录
我的控制器welcome.php
public function index()
{
}
任何人都可以帮助我,如何使用基本身份验证在控制器welcome.php中调用我的api。
答案 0 :(得分:0)
使用CURL,您可以使用任何API /网络调用。
<?php
$headers = array(
'Content-Type:application/json',
'Authorization: Basic '. base64_encode("user:password") // place your auth details here
);
$payload = array(
'id' => 1,
);
$process = curl_init($host); //your API url
curl_setopt($process, CURLOPT_HTTPHEADER, $headers);
curl_setopt($process, CURLOPT_HEADER, 1);
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_POST, 1);
curl_setopt($process, CURLOPT_POSTFIELDS, $payload);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
$return = curl_exec($process);
curl_close($process);
//finally print your API response
print_r($return);
?>
但是为什么要用这种方式调用自己的API?您只需调用API模型并执行操作
答案 1 :(得分:0)
在下方添加您的卷曲选项
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'APIKEY: admin@123',
'Content-Type: application/json',
));
也更新
$config['rest_key_name'] = 'APIKEY';
位于codeigniter设置的config文件夹内的rest.php文件中。默认情况下,它是“ X-API-KEY”
如果OP自己解决了问题,这可能对寻求解决方案的其他人有所帮助。