Personalizacion API REST path del endpoint

Buenas tenemos una consulta respecto de personalizar la API de guarani , estamos en versión 3.20.1.

La idea es extender una clase que ya existe y agregarle nuevos endpoints, por ejemplo para personas agregamos “egresado” y nos gustaría poder acceder a través de la url
“/personas/{persona}/egresado”, al igual que por ejemplo el que ya existe de datos personales “/personas/{persona}/datospersonales”., o en su defecto “personas-unlp/{persona}/egresado”, pero por el contrario nos están quedando asi las rutas “​/modelos​/personas​/{persona}​/personas-unlp​/egresado” .

La personalización la hicimos siguiendo los pasos de la documentación: https://documentacion.siu.edu.ar/wiki/SIU-Guarani/Version3.20.0/personalizaciones/rest

En resumen lo que hicimos fue crear esto:

personalizacion\php\rest\v1\modelos\personas\recurso_personas_unlp.php


<?php

namespace PERS\Guarani\php\rest\v1\personas;

use SIUToba\rest\rest;
use SIUToba\rest\lib\rest_validador;
use SIU\Guarani\php\rest\v1\personas\recurso_personas;

class recurso_personas_unlp extends recurso_personas
{
	
	public static function _get_modelos()
	{
		
        $modelos = parent::_get_modelos();

        $egresado = array (
            'sede' => array('type' =>'string'),
            'plan' => array('type' =>'string'),
            'nombre_persona' => array('type' =>'string'),
            'apellido_persona' => array('type' =>'string'),
            'sexo' => array('type' =>'string'),
            'nombre_ua' => array('type' =>'string'),
            'carrera_nombre' => array('type' =>'string'),
            'nombre_titulo' => array('type' =>'string'),
            'fecha_egreso' => array('type' =>'string'),
            'anio_ingreso' => array('type' =>'string'),
            'fecha_ingreso_facultad' => array('type' =>'string'),
            'fecha_ingreso_carrera' => array('type' =>'string'),
            'tipo_documento' => array('type' =>'string'),
            'nro_documento' => array('type' =>'string'),
            'id_localidad' => array('type' =>'string'),
            'nombre_localidad' => array('type' =>'string'),
            'nombre_localidad_abreviado' => array('type' =>'string'),
            'id_partido' => array('type' =>'string'),
            'nombre_partido' => array('type' =>'string'),
            'id_provincia' => array('type' =>'string'),
            'nombre_provincia' => array('type' =>'string'),
            'id_pais' => array('type' =>'string'),
            'nombre_pais' => array('type' =>'string'),
            'fecha_nacimiento' => array('type' =>'string'),
            'domicilio_calle' => array('type' =>'string'),
            'domicilio_numero' => array('type' =>'string'),
            'id_colegio' => array('type' =>'string'),
            'nombre_colegio' => array('type' =>'string'),
            'id_titulo_secundario' => array('type' =>'string'),
            'nombre_titulo_secundario' => array('type' =>'string'),
            'email' => array('type' =>'string'),
            'titulo_anterior' => array('type' =>'string'),
            'titulo_anterior_denominacion' => array('type' =>'string'),
            'titulo_anterior_institucion' => array('type' =>'string'),
            'tipo_titulo' => array('type' =>'string'),
            'nro_resolucion_ministerial' => array('type' =>'string'),
            'domicilio_telefono' => array('type' =>'string'),
            
            
        );

        $modelos['Egresado'] = $egresado;

        return $modelos;
        
		
	}
  /**
	 * GET /egresado
	 * 
	 * @notes
	 * Devuelve datos de un egresado.

	 * 
	 * @summary Personas
	 * @responses 200 array {"$ref":"Persona"}
	 * @responses 404 La persona no existe
	 * @responses 400 Error en los par�metros
	 */


    function get_egresado_list($persona)
	{
            $datos = $this->modelo->get_datos_egresado_alumno($persona);
            rest::response()->get($datos);
	}
}


personalizacion\php\rest\v1\modelos\rest_personas.php

<?php

namespace PERS\Guarani\php\rest\v1\modelos;

use SIU\Guarani\php\rest\v1\modelos\rest_personas_nucleo;

class rest_personas extends rest_personas_nucleo {

    function get_datos_egresado_alumno($persona)
	{
		$titulo = trim(rest::request()->get('titulo'));
		if ($titulo == "") {
			throw new rest_error(400, "El parámetro 'titulo' es obligatorio");
		} else {
		
		}
                
        $unidad_academica = trim(rest::request()->get('unidad_academica'));
		if ($unidad_academica == "") {
			throw new rest_error(400, "El parámetro 'unidad_academica' es obligatorio");
		} 
                
        $carrera = trim(rest::request()->get('carrera'));
		if ($carrera == "") {
			throw new rest_error(400, "El parámetro 'carrera' es obligatorio");
		} 
   
        $rs = $this->modelo->get_datos_egresado($persona, $fecha, $modalidad);
		if (count($rs)) {
			$datos = rest_hidratador::hidratar($this->get_modelo('Egresado'), $rs);
			return $datos;
            
		} else {
			throw new rest_error(404, 'La persona no tiene historia academica');
		}

	}

}

Según la documentación el servicio debería quedar disponible en “/personas-unlp/…” como podemos lograr eso? muchas gracias.

Respecto de mi primera consulta, quiero avisar que ya encontré porque me quedaba mal la ruta del endpoint y era porque estaba mal ubicada la carpeta del recurso, la habíamos puesto dentro de “modelo” y dentro de “personas”

estaba acá:
personalizacion\php\rest\v1\modelos\personas\recurso_personas_unlp.php

lo movimos acá:
personalizacion\php\rest\v1\personas_unlp\recurso_personas_unlp.php

Nos quedaría pendiente la segunda duda que es si en vez de “/personas-unlp/id/nombreendpoint” hay alguna forma de que quede directamebte como " “/personas/id/nombreendpoint” ya que nosotros antes de utilizar la API REST utilizabamos la api externa y teniamos varios endpoints nuevos y otros personalizados sobre la clase persona y nos gustaría que puedan quedar de la misma forma porque de lo contrario implicaría tener que notificar a todos los que consumen de la api que los enpoints cambiarán a “personas-unlp” una vez que pasemos a producción la API REST. Muchas gracias.