Tôi đã tạo API REST PHP bằng CodeIgniter với Xác thực cơ bản, (cung cấp "id công ty" và "Khóa API" làm tên người dùng/mật khẩu). Sau đó, chúng tôi thấy rằng cần phải cung cấp khóa phiên liên quan trực tiếp đến Khóa API, chỉ với thời gian hết hạn.
Về cơ bản, chúng tôi truy vấn các loại dữ liệu khác nhau trong kho dữ liệu của chúng tôi (giống nosql :) tùy thuộc vào phương thức "được cung cấp trong URL". Chúng tôi đã truy cập điều này bằng cách sử dụng khả năng "phân đoạn" do CodeIgniter cung cấp.
Sau đó, chúng tôi gói từng phản hồi bằng "json_encode" đã được trả về và chúng tôi cũng sử dụng kết nối HTTPS để bảo mật.
Đối với lớp khách hàng, chúng tôi gói mọi thứ trong các cuộc gọi như $ client-> get_my_data ($ api_key), với một lớp bên dưới bằng cách sử dụng PHP Libcurl, hoạt động thực sự tốt để cung cấp Basic Auth.
Hope this helps,
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;
}
}
Nguồn
2011-02-18 16:11:42
Wow frapi trông khá ngọt ngào, mặc dù trang web của họ là spartan xa hơn nhiều so với khi bạn bắt đầu nhấp vào xung quanh. – Justin