SIU-Guarani/Version3.11.0/personalizaciones/rest
Revisión del 12:53 1 ago 2016 de Sergio (discusión | contribuciones)
Personalizar servicios REST
Crear un nuevo servicio REST
Si lo que se desea es crear un nuevo servicio REST se debe hacer lo siguiente:
Supongamos que el nuevo servicio manipule aulas, por lo tanto nuestro nuevo recurso se pasara a llamar aulas, para crearlo seguiremos los siguientes pasos:
- Crear el archivo <path proyecto Guaraní>/personalizacion/php/rest/aulas_uni/recurso_aulas_uni.php, donde uni sera en nombre de la universidad en cuestión (esto evita futuras colisiones de nombre si el SIU decide mas adelante agregar el recurso aulas).
- Dentro de dicho archivo crear la clase recurso_aulas_uni la cual debe implementar la interface modelable:
- <?php
//personalizacion/php/rest/aulas_uni/recurso_aulas_uni.php
use SIUToba\rest\rest;
use SIUToba\rest\lib\rest_validador;
class recurso_aulas_uni implements SIUToba\rest\lib\modelable{
............
}
- Luego procederemos a agregar la capa de datos que se encargara de las operaciones de tipo ABM/CRUD de los servicios en cuestión, en este caso agregaremos la clase rest_aulas_uni en <path proyecto Guaraní>/personalizacion/php/nucleo/aulas/rest_aulas_uni.php:
- <?php
//personalizacion/php/nucleo/aulas/rest_aulas_uni.php
class rest_aulas_uni{
............
}
- Seguido vincularemos la clase rest_aulas_uni a nuestro nuevo recurso recurso_aulas_uni:
- <?php
//personalizacion/php/rest/aulas_uni/recurso_aulas_uni.php
use SIUToba\rest\rest;
use SIUToba\rest\lib\rest_validador;
class recurso_aulas_uni implements SIUToba\rest\lib\modelable{
/**
* @var rest_aulas_uni
*/
protected $modelo;
function __construct()
{
$this->modelo = guarani::rest('rest_aulas_uni');
}
}
- Luego a modo de ejemplo crearemos la estructura que tendrá nuestro recurso el cual llamaremos Aula_uni y tendrá los atributos nombre, fecha_creacion, estado y edificio (modelo Edificio_uni):
- <?php
//personalizacion/php/rest/aulas_uni/recurso_aulas_uni.php
use SIUToba\rest\rest;
use SIUToba\rest\lib\rest_validador;
class recurso_aulas_uni implements SIUToba\rest\lib\modelable{
public static function _get_modelos(){
$edificio_uni = array(
'nombre' => array(
'type' => 'string'
)
);
$aula_uni = array(
'nombre' => array(
'type' => 'string'
),
'fecha_creacion' => array(
'type' => 'date',
'_validar' => array(rest_validador::TIPO_DATE)
),
'estado' => array(
'type' => 'string',
'enum' => array("A", "B"),
'_validar' => array(rest_validador::TIPO_ENUM => array("A", "B"))
),
'edificio' => array('$ref' => 'Edificio_uni')
);
return array(
'Aula_uni' => $aula_uni,
'Edificio_uni' => $edificio_uni
);
}
}