Я создал PHP REST API, используя CodeIgniter с базовой аутентификацией (предоставив «id компании» и «Ключ API» в качестве имени пользователя / пароля). Позже мы обнаружили, что было необходимо предоставить сеансовые ключи, которые были непосредственно связаны с ключом API, только со сроком действия.
По сути, мы запрашивали разные типы данных в нашем хранилище данных (разновидность nosql :) в зависимости от того, какой «метод» был указан в URL. Мы получили доступ к этому с помощью способности «сегмента», предоставляемой CodeIgniter.
Затем мы завернули каждый ответ «json_encode», который был возвращен, и мы также использовали HTTPS-соединение для безопасности.
Для клиентского класса мы обернули все в вызовы, такие как $ client-> get_my_data ($ api_key), со слоем внизу, используя PHP Libcurl, который действительно хорошо работает для обеспечения базовой аутентификации.
Надеюсь, это поможет,
CURL_GET
private function curl_get($url, $apikey, $co)
{
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, $url);
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl_handle, CURLOPT_USERPWD, $co.":".$apikey);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_DNS_USE_GLOBAL_CACHE, FALSE);
$buffer = curl_exec($curl_handle);
$error = curl_error($curl_handle);
curl_close($curl_handle);
// check for success or failure
if (empty($buffer)) {
//echo 'Something went wrong :( error: '.$error.'<Br>';
} else {
return $buffer;
}
}