Hola a todos!!
Estamos necesitando consumir desde G3W2 (2.9.1)un WebServis porpio por REST, sin autenticación.
Vemos que consume Kolla por REST, cómo debería proceder para poder agregar uno propio? Alguien ya lo ha hecho?
ANA - UNNOBA
Hola a todos!!
Estamos necesitando consumir desde G3W2 (2.9.1)un WebServis porpio por REST, sin autenticación.
Vemos que consume Kolla por REST, cómo debería proceder para poder agregar uno propio? Alguien ya lo ha hecho?
ANA - UNNOBA
Hola Ana, suponiendo que el servicio REST ya esta hecho desde el 3W lo podes consumir vía Guzzle (dicha librería ya esta incluida en el proyecto).
Lo primero que tenes que hacer es crear un Cliente (https://guzzle.readthedocs.org/en/guzzle4/clients.html#creating-a-client), similar a como se hace en src/siu/lib/kernel/util/ws_cliente_rest.php función guzzle:
$client = new \GuzzleHttp\Client(array('base_url' => 'http://service_base_url/'));
una vez creado el cliente podes hacer distintas peticiones (similar a como se hace en src/siu/modelo/entidades/encuestas_kolla.php función get_encuestas):
$response = $client->get('/notifications');
En este ultimo archivo (src/siu/modelo/entidades/encuestas_kolla.php) tenes muchos ejemplos de peticiones REST, por ejemplo en la función get_encuesta:
public static function get_encuesta($id_encuesta)
{
//Acá se hace la petición, ver: https://guzzle.readthedocs.org/en/guzzle4/clients.html#sending-requests
$response = self::get_cliente_rest()
->get('encuestas/'.$id_encuesta,
array('query' => array('unidad_gestion' => self::get_unidad_gestion()),
'exceptions' => false)
);
//Acá se procesa la respuesta, ver: https://guzzle.readthedocs.org/en/guzzle4/http-messages.html#responses
if($response->getStatusCode() == "404"){//Si la encuesta no existe
throw new error_guarani(kernel::traductor()->trans('errores_kolla.no_existe_encuesta', array('%encuesta%' => $id_encuesta)));
}
else{
self::validar_response($response, 200, __FUNCTION__);
return rest_decode($response->json());
}
}
les recomiendo que lean la documentación de Guzzle. saludos.