Next BP

Manual do Usuário

Integrações

Manual Técnico

APIs Customizadas

Requisitos:

Veja abaixo o exemplo do desenvolvimento de duas rotas para listar e salvar dados:

webservice/especificos/model/Exemplo.model.php:

<?php 
use \Sys\Model; 
use \Sys\Validation; 

class Exemplo_Model extends Model { 

    public $nome_completo; 

    function __construct() { 
       parent::__construct(); 
    } 

    function validation() { 
       $validation = new Validation(); 

       if (strlen($this->nome_completo) == 0 || is_null($this->nome_completo)) {
           $validation->add(Validation::VALID_ERR_FIELD, 'Informe o nome completo');
       }

       return $validation;
    }
}

webservice/especificos/dao/Exemplo.dao.php:

<?php 

use \Sys\DAO; 
use \Sys\DB; 

class Exemplo_DAO extends DAO { 

    function insert($exemplo_model) { 
        $sql = "INSERT INTO sua_tabela ( campo_1, campo_2 ) VALUES ( :nome_completo, :conteudo_2 ) "; 

        $params[':nome_completo'] = $exemplo_model->nome_completo;

        //Trecho responsável por executar a query
        //$query = Sys\DB::exec($sql, $params);

        return $params;
    }


    function listar()
    {
        $sql = "SELECT
                    id,
                    nome,
                    cor
                FROM agenda_tipo
                WHERE excluido = 'N'
                LIMIT 0, 4";

        $params = array();

        $query = DB::query($sql, $params);

        return $query;
    }
}

webservice/especificos/controller/Exemplo.controller.php:

<?php

use \Sys\App;

class Exemplo_Controller extends \Sys\Controller {

    function salvar($url_params) {

        //Obtendo os parâmetros
        $nome_completo = $this->ReadPost('nome_completo', null);

        //Carregando os models
        $exemplo_model = $this->LoadModel('Exemplo', true);

        //Setando os valores do model
        $exemplo_model->nome_completo = $nome_completo;

        try {
            $exemplo_dao = $this->LoadDAO('Exemplo', true);
            $ret = $exemplo_dao->insert($exemplo_model);

            $this->print_json($ret);
        }
        catch (BusinessException $e) {
            $this->print_json($e);
        }
    }

    function listar($url_params){

        // valida token
        $sessao_model = \Sys\Sessao::objeto(self::$instance_token);
        // valida permissões
        \Sys\Permissions::verificar(App::$emp, $sessao_model->dados->permissoes, array('gestao_projetos', 'agenda'));

        // instancio o projeto
        $exemplo_dao = $this->LoadDAO('Exemplo', true);

        try {
            $lista = $exemplo_dao->listar();
            $this->print_json($lista);
        }
        catch (BusinessException $e) {
            $this->print_json($e);
        }  
    }
}

webservice/especificos/routes/RouteMap.config.php:

<?php 
class RouteMapEspecifico_Config extends \Sys\RouteMap
{
    static function adicionarRotas()
    {
        $rotas_especificas = array(
            '/exemplo/salvar/' => array('Exemplo', 'salvar'),
            '/exemplo/listar/' => array('Exemplo', 'listar')
        );

        return $rotas_especificas;
    }
}
Índice do Manual
Next BP versão 23.59.84