Consumir la API REST de Guaraní

Hola,

Tenemos la versión 3.18.0  y quiero empezar a ver como es el tema del consumo de la API REST. Tengo el acceso al swagger para la documentación de cada módulo (alumnos, comisiones, convocatorias, etc.), ya cree un usuario para probarlo en el archivo servidor_usuarios.ini:

    [admindev]
    password = restd3s4rr0ll0g3

En el archivo servidor.ini solo esta lo siguiente: 
    ;servidor.ini
    autenticacion = basic


El problema es que cuando quiero probarlo, ya sea por Postman o por el mismo Swagger (con el botón "Try it out!") siempre me da como respuesta código 403:
{
  "error": 403,
  "mensaje": "403 Forbidden",
  "descripcion": "Acceso denegado"
}


Evidentemente me está faltando poner la autenticación en algún lado, pero no sé donde? si me pueden orientar o mencionar alguna documentación para el uso de la API se los agradecé mucho, saludos!

Hola Nicolás,

Se puede deber a esto: https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.18.0/interfaces/api-guarani-perfil-funcional

El usuario de API REST “admindev” debería estar en el archivo php/rest/recursos_usuarios.php.

saludos.
2

Buenos días, cuando tiro la siguiente consulta

http://IP_GUARANI_UNRAF/guarani/rest/personas?pais=54&tipo_documento=DNI&numero_documento=40968421

Me da el siguiente resultado

{
“error”: 403,
“mensaje”: “403 Forbidden”,
“descripcion”: “Acceso denegado”
}

Ya tengo creado el usuario guarani_prueba con su contraseña en los archivos

path_gestion>/instalacion/i__desarrollo/p__guarani/rest/servidor_usuarios.ini
path_gestion>/instalacion/i__desarrollo/p__guarani/rest/servidor_usuarios.ini

En este post nombran un usuario “admindev” que no se donde lo debo crear.

Desde ya, cualquier ayuda se los agradezco.

Saludos

Hola Lucas,

El usuario “admindev” era el ejemplo usado por Lucas Fernandez, no necesitan tenerlo ustedes.
En tu caso el usuario “guarani_prueba” debería estar en el archivo ‘<path proyecto Guaraní>/php/rest/recursos_usuarios.php’ (https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.19.0/interfaces/api-guarani-perfil-funcional).

Saludos, Florencia.

Gracias Florencia por tu respuesta, te consulto, a lo mejor están mal creados, te paso:

en el archivo <path_gestion>/instalacion/i__desarrollo/p__guarani/rest/servidor_usuarios.ini

[guarani_prueba]
password = clave

Y en el archivo <path_gestion>/php/rest/recursos_usuarios.php
$usuario_rest = array(‘guarani_prueba’,‘clave’);

Estarían bien los 2?

Hola Lucas,

Fijate que el servicio “/personas” está configurado para que tengan permiso de acceso los usuarios incluidos en $usuarios_sidcer:

	'personas' => array(
		'GET' => array('usuarios' => array_merge($usuarios_sidcer))
	),

Entonces en la primeras líneas del archivo ‘<path proyecto Guaraní>/php/rest/recursos_usuarios.php’, donde se define el contenido del array $usuarios_sidcer deberías agregar tu usuario:

$usuarios_sidcer = array('guarani', 'guarani_prueba');

Saludos, Florencia.

Buenas. Estamos en la version 3.18 y tengo el mismo inconveniente. Me arroja un 404. Nose que parametro tengo mal.
Lo estoy probando en testing

Hola Leandro,

El error 404 (Not found) es diferente a 403 (Forbidden).

El 403 se puede llegar a deber a una mala configuración del archivo php/rest/recursos_usuarios.php (ver: https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.18.0/interfaces/api-guarani-perfil-funcional).

El 404 es que no existe el servicio, o en algunos servicios se devuelve 404 cuando una búsqueda no devuelve resultados. En el caso de los servicios del recurso personas un 404 significa que la persona no existe.

Si ingresas a http:///rest/ vas a poder ingresar al Swagger y ver los status code que devuelve cada Web Service. En el caso de GET /personas es el siguiente:


200 OK (datos de contacto de la persona)
404 Not Found La persona no existe
400 Error en los parámetros

¿nos podes contar mas sobre el error?

saludos.
2

Buenas. Si seguramente tengo algo mal configurado. Si queres te paso la captura de toda la configuración total es testing y me indicas que me esta faltando o que esta mal. Te parece?

Buenas. Te mando la configuración que realice. Utilice el usuario y contraseña que me brindaron para testing. Tendria que ver si esta bien mi URL

Hola Leandro,

Hay un par de cosas que veo mal:

  1. En cliente.ini debería decir to = “http://sicerwstest.siu.edu.ar/sicerws_test/3.0/rest/

Luego te falta configurar para que Guarani consuma los servicios de Sidcer: https://documentacion.siu.edu.ar/wiki/SIU-Guarani/Version3.19.0/interfaces/sidcer

saludos.
2

Buenas. Listo lo de la URL lo corregí.
Despues pusiste que configure que Guarani consuma os servicios de Sidcer que me falta de eso?
En <path proyecto Gestión>/instalacion/i__desarrollo/p__guarani/rest/servidor_usuarios.ini puse el usuario y contraseña que me pasaron del Sidcer que te mande la captura y en <path proyecto Gestión>/php/rest/recursos_usuarios.php puse el usuario tambien.

Hola Leandro,

La comunicación entre Guaraní - Sidcer es bidireccional.

Guaraní Gestión y Autogestión consumen Sidcer para saber el estado de los títulos.
Guaraní Gestión: En <path proyecto Gestión>/instalacion/i__/p__guarani/rest/sidcer/cliente.ini se configura para poder “hablar” con la API REST de Sidcer.

Guaraní Autogestión: En <path proyecto 3w>/instalacion/servicios_web_config.php se configura para poder “hablar” con la API REST de Sidcer.

Para que Sidcer “hable” con Guaraní tenes que hacer los pasos donde dice “Para que SICer consuma los Web Services de SIU-Guaraní” de esta documentación. Aqui creas un usuario de API REST para que consuma Sidcer, luego deberás configurar Sidcer para que consuma la API REST de Guaraní.

saludos.
2

Buenas . Esto lo que me pusiste en esta linea:

“Para que Sidcer “hable” con Guaraní tenes que hacer los pasos donde dice “Para que SICer consuma los Web Services de SIU-Guaraní” de esta documentación. Aqui creas un usuario de API REST para que consuma Sidcer, luego deberás configurar Sidcer para que consuma la API REST de Guaraní.”

Esto también lo realice te mande en el archivo vinculación.rar en una de las respuestas anteriores.

Ahora cuando ejecuto https://siutesting.iugna.edu.ar/guarani/rest me tira error 500:

error 500
mensaje “500 Internal Server Error”
descripcion “Error Interno en el servidor: Este controlador no está configurado para manejar esta URL. La url es: ‘/guarani/rest’, la url de la API es ‘/guarani//rest’”

Tenia comentado en el archivo servidor.ini la autenticación.

Hola,

¿como tenes configurados los archivos instalacion/toba.conf, instalacion/i__desarrollo/p__guarani/rest/servidor.ini y instalacion/i__desarrollo/p__guarani/rest/servidor_usuarios.ini en Guaraní Gestión?

En instalacion/i__desarrollo/p__guarani/rest/servidor.ini tenes configurado url_api, te recomiendo que lo comentes en caso de tenerlo configurado.

saludos.
2

Buenas. Te mando adjunto las configuraciones.

Buenas me olvide de adjuntar el toba.conf.


toba.txt (7.52 KB)

Hola, gracias por las información!!!

Observo lo siguiente en el archivo instalacion/toba.conf:


	#Proyecto: guarani
	Alias /guarani "/usr/local/proyectos/guarani/www/"
	<Directory "/usr/local/proyectos/guarani/www/">
		SetEnv TOBA_DIR 		"/usr/local/proyectos/guarani/vendor/siu-toba/framework"
		SetEnv TOBA_PROYECTO 	"guarani"
		SetEnv TOBA_INSTALACION_DIR "/usr/local/proyectos/guarani/instalacion"
		SetEnv TOBA_INSTANCIA	"desarrollo"
		DirectoryIndex aplicacion.php

		AllowOverride None
		<IfModule !mod_access_compat.c>
		#Apache 2.2.x
		##Piense en actualizar la version del web server a Apache 2.4.x al menos
		##Si desea seguir en esta version, descomente las siguientes lineas
		#	Order allow,deny
		#	Allow from all
		</IfModule>
		<IfModule mod_access_compat.c>
			#Apache 2.3.x/2.4.x  back-comp (deprecated)
			Order allow,deny
			Allow from all
		</IfModule>
		<IfModule mod_authz_core.c>
			#Apache 2.4.x 
			Require all granted
		</IfModule>

		#API REST
		RewriteEngine On
   		RewriteBase /guarani/
		Options FollowSymLinks SymLinksIfOwnerMatch
	  	RewriteRule ^rest/(.*)$ rest.php/$1 [PT,L,QSA]
   		RewriteRule ^rest$      rest.php/   [PT,L,QSA]
		SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
	</Directory>

Reemplaza RewriteBase /guarani/ por RewriteBase /guarani (seria quitar la “/” al final), luego reinicia Apache y volve a intentar.

Los archivos instalacion/i__desarrollo/p__guarani/rest/servidor.ini e instalacion/i__desarrollo/p__guarani/rest/servidor_usuarios.ini parecen estar bien.

Elimine los adjuntos ya que contienen contraseñas.

saludos.
2

Buenas. Si es testing por eso subi los archivos con contraseña. Realice lo que me dijiste le saque la barra (/) pero sigue todo igual.