Buen día, nos comunicamos para transmitir una inquietud que nos ha surgido
Actualmente necesitamos crear un servicio en la API que a partir del DNI del alumno obtenga los siguientes datos
- Nombre y Apellido
- Propuesta
- Unidad Académica
- Fecha de Ultimo Examen
- Año de Ingreso
- Año de última Reinscripción
Tenemos diseñada la consulta que necesitamos realizar en la base de datos
select a.identificacion,
a.apellido_nombres,
ra.codigo ra_codigo,
ra.nombre ra_nombre,
a.propuesta_codigo,
a.propuesta_nombre,
get_fecha_ingreso_alumno(a.alumno) fecha_ingreso_alumno,
(select max(anio_academico) from sga_reinscripciones as r where r.alumno=a.alumno ) ultima_reinscripcion,
(select max(fecha) from vw_hist_academica_basica as ha where ha.alumno=a.alumno) ultimo_examen
from vw_alumnos as a,
sga_propuestas_ra as pra,
sga_responsables_academicas ra
where identificacion='dni_alumno'
and a.propuesta=pra.propuesta
and pra.responsable_academica=ra.responsable_academica
Hemos revisado la documentación de como personalizar servicios REST
https://documentacion.siu.edu.ar/wiki/SIU-Guarani/Version3.21.0/personalizaciones/rest
Pero, no hemos logrado diseñar adecuadamente los archivos de recursos y modelos necesarios para el correcto funcionamiento de la API, nos seria de gran utilidad encontrar los medios para realizar debug, y poder saber en que estamos fallando
Adjunto código de ambos documentos
– rest_alumnos.php –
<?php
namespace PERS\Guarani\php\rest\v1\modelos;
use SIU\Guarani\php\rest\v1\modelos\rest_alumnos_nucleo;
class rest_alumnos extends rest_alumnos_nucleo{
/**
* @var rest_alumnos
*/
protected $modelo;
public static function _get_modelos_comedor(){
$alumno = array(
'nombre' => array('type' => 'string'),
'apellido' => array('type' => 'string'),
'propuesta' => array('type' => 'string'),
'unidad_academica' => array('type' => 'string'),
'fecha_ult_examen' => array('type' => 'string'),
'anio_ingreso' => array('type' => 'string'),
'anio_ult_reincripcion' => array('type' => 'string'),
);
return array('Alumno' => $alumno);
}
function __construct()
{
$this->modelo = \guarani::rest(rest_alumnos::class);
}
function get_alumno($dni_alumno)
{
$consulta = "select a.identificacion,
a.apellido_nombres,
ra.codigo ra_codigo,
ra.nombre ra_nombre,
a.propuesta_codigo,
a.propuesta_nombre,
get_fecha_ingreso_alumno(a.alumno) fecha_ingreso_alumno,
(select max(anio_academico) from sga_reinscripciones as r where r.alumno=a.alumno ) ultima_reinscripcion,
(select max(fecha) from vw_hist_academica_basica as ha where ha.alumno=a.alumno) ultimo_examen
from vw_alumnos as a,
sga_propuestas_ra as pra,
sga_responsables_academicas ra
where identificacion='$dni_alumno'
and a.propuesta=pra.propuesta
and pra.responsable_academica=ra.responsable_academica;"
return $consulta;
}
}
– recurso_alumnos_comedor.php –
<?php
namespace personalizacion\php\rest\v1;
// namespace PERS\Guarani\php\rest\v1\alumnos_unsj;
use SIU\Guarani\php\rest\v1\alumnos\recurso_alumnos;
use SIUToba\rest\rest;
use SIUToba\rest\lib\rest_validador;
use SIUToba\rest\lib\rest_error;
class recurso_alumnos_comedor extends recurso_alumnos {
public static function _get_modelos()
{
//Obtengo los modelos de la clase padre (recurso_alumnos)
$modelo = parent::_get_modelos();
//Le agrego la propiedad 'dni'.
$modelo['alumno_comedor']['username'] = array('type' => 'string');
return $modelo;
}
}
?>
Desde ya agradecemos cualquier ayuda en la resolución de este inconveniente
Saludos cordiales