Diferencia entre revisiones de «SIU-Guarani/Version3.11.0/personalizaciones/rest»

De SIU
Saltar a: navegación, buscar
Línea 24: Línea 24:
 
#:<source lang="php" enclose="div">
 
#:<source lang="php" enclose="div">
 
<?php
 
<?php
 +
 
//personalizacion/php/nucleo/aulas/rest_aulas_uni.php
 
//personalizacion/php/nucleo/aulas/rest_aulas_uni.php
 +
 
class rest_aulas_uni{
 
class rest_aulas_uni{
 
............
 
............
 
}  
 
}  
 
</source>
 
</source>
 
 
# Seguido vincularemos la clase '''rest_aulas_uni''' a nuestro nuevo recurso '''recurso_aulas_uni''':
 
# Seguido vincularemos la clase '''rest_aulas_uni''' a nuestro nuevo recurso '''recurso_aulas_uni''':
 
#:<source lang="php" enclose="div">
 
#:<source lang="php" enclose="div">
Línea 49: Línea 50:
 
     {
 
     {
 
         $this->modelo = guarani::rest('rest_aulas_uni');
 
         $this->modelo = guarani::rest('rest_aulas_uni');
 +
    }
 +
}
 +
</source>
 +
# 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'''):
 +
#:<source lang="php" enclose="div">
 +
<?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
 +
        );
 
     }
 
     }
 
}
 
}
 
</source>
 
</source>

Revisión del 12:53 1 ago 2016

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:

  1. 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).
  2. 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{
    ............
    }
  3. 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{
    ............
    }
  4. 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');
        }
    }
  5. 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
            );
        }
    }