我已经创建了一个 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);
}
}
模型(用户.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)以通过基本身份验证在welcome.php控制器中获取记录(uname-admin,pwd-1234)
我的控制器welcome.php
public function index()
{
}
任何人都可以帮助我如何使用基本身份验证在控制器welcome.php中调用我的api。
使用 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模型并执行您的操作
将以下内容添加到您的卷曲选项中
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 自己解决了问题,这可能会帮助其他人寻找解决方案。