Artículos de opinión, videos de humor, música, tecnología, cosas extrañas, críticas, trailers de películas y ocio en general
sábado, 22 de diciembre de 2012
Implementación de clase model para acceder a la API de Wikipedia
Ésto es un ejemplo de cómo podemos implementar un modelo PHP para acceder a la API de wikipedia. Los métodos protegidos, son otros ejemplos de parámetros para obtener un resultado diferente. Recomiendo que busquéis la documentación de la API de wikimedia para asegurarse de que los parámetros no han cambiado.
class Model_Encyclopedia
{
const WIKIPEDIA_API_URL = 'http://en.wikipedia.org/w/api.php';
/**
*
* @param type $name
* @param type $language
* @return null
*/
public static function get_page($name, $language = 'en')
{
// here you could call one of the other protected methods, to change behaviour of the response
$parameters = array(
'action' => 'parse',
'prop' => 'text',
'format' => 'json',
'mobileformat' => 'html',
'uselang' => $language,
'page' => $name,
'section' => 2 // depends on the page
);
$query = http_build_query($parameters);
$url = self::WIKIPEDIA_API_URL . '?' . $query;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, \Input::user_agent());
$data = curl_exec($ch);
curl_close($ch);
// if curl fails, it will be a json_decode of false, and will not be an object
$data = json_decode($data);
if (is_object($data) && isset($data->parse))
{
return $data->parse;
}
return null;
}
protected static function _get_action_mobileview_parameters()
{
$parameters = array(
'action' => 'mobileview',
'format' => 'json',
'noheadings' => true,
'prop' => 'text|normalizedtitle',
'sections' => 2
);
return $parameters;
}
protected static function _get_action_query_parameters()
{
$parameters = array(
'action' => 'query',
'format' => 'json',
'rvprop' => 'content',
'titles' => 'medieval age',
'prop' => 'images|info|revisions',
'noheadings' => true,
'rvsection' => 2
);
return $parameters;
}
}
Etiquetas:
código php,
php model implementation,
programación,
wikimedia api,
wikipedia
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario