Uso de la libreria REST standalone
Federico Bohn edited this page Jul 6, 2015
·
1 revision
#Uso de la libreria REST standalone
composer require siu-toba/rest
Se deben proveer algunas dependencias para configurar y adaptar la librería. Por ejemplo:
$settings = array(
'path_controladores' => $path_controladores, // ubicacion de la carpeta que contiene los recursos
'url_api' => $url_base, // url donde se localizan los recursos
'prefijo_api_docs' => 'api-docs',
'debug' => 0|1, // Indica si es modo debug
'encoding' => 'latin1',
'api_version' => '1.0.0', // Version de la API, por defecto 1.0.0
);
$app = new SIUToba\rest\rest($settings);
$app->container->singleton('logger', function () {
return new toba_rest_logger();
});
//ver otros mecanismos de autenticacion, aca usamo 'oauth2' que es el mas complejo:
$app->container->singleton('autenticador', function () use ($conf) {
$conf_auth = $conf->get('oauth2');
$cliente = new \GuzzleHttp\Client(array('base_url' => $conf_auth['endpoint_decodificador_url']));
$decoder = new oauth_token_decoder_web($cliente);
$decoder->set_cache_manager(new \Doctrine\Common\Cache\ApcCache());
$decoder->set_tokeninfo_translation_helper(new autenticacion\oauth2\tokeninfo_translation_helper_arai());
}
$app->container->singleton('autorizador', function () use ($conf) {
$conf_auth = $conf->get('oauth2');
if (!isset($conf_auth['scopes'])) {
die("es necesario definir el parámetro 'scopes' en el bloque oauth2 de la configuración");
}
$auth = new autorizacion_scopes();
$auth->set_scopes_requeridos(array_map('trim', explode(',', $conf_auth['scopes'])));
return $auth;
});
$app->container->singleton('db', function () {
return toba::db();
});
$app->procesar(); //le damos control