He hecho una API PHP REST usando CodeIgniter con Autenticación básica, (proporcionando "id de la compañía" y "Clave de la API" como nombre de usuario/contraseña). Más tarde descubrimos que era necesario proporcionar claves de sesión que estaban directamente relacionadas con una clave API, solo con un tiempo de vencimiento.
Básicamente, consultamos diferentes tipos de datos en nuestro almacén de datos (variedad nosql :) dependiendo de lo que se proporcionó el "método" en la URL. Accedimos a esto usando la habilidad de "segmento" provista por CodeIgniter.
Luego completamos cada respuesta con un "json_encode" que se devolvió y también usamos una conexión HTTPS para mayor seguridad.
Para la clase de cliente envolvemos todo en llamadas tales $ client-> get_my_data ($ api_key), con una capa debajo usando PHP Libcurl, que funciona muy bien para proporcionar Basic Auth.
Espero que esto ayude,
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;
}
}
Wow frapi parece bastante dulce, aunque su sitio es mucho más espartano de lo que parece una vez que empiezas a hacer clic. – Justin