CakePHP 4 como API

28 views
Skip to first unread message

Hermiro Carvalho

unread,
Mar 10, 2021, 2:01:42 PM3/10/21
to CakePHP Tuga
Boa tarde a todos.

Estou fazendo testes no cakephp 4 como uma API para o meu front-end.
O meu serviço esta funcionando, porém como eu não conheço muito gostaria de uma ajuda no sentido de melhorar a performance/passar valores.

Fiz o seguinte:
1 - No arquivo bootstrap.php inclui as seguintes linhas no final:

header('Access-Control-Allow-Origin: http://localhost:4200');
header('Access-Control-Allow-Methods: POST, GET, PUT, PATCH, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: *');
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
    exit(0);
}

No arquivo ServicosController tenho uma função que retorna uma lista em json:

    public function index2()
    {
        $servicos = $this->paginate($this->Servicos);

        $this->set(compact('servicos'));        
        $this->set([
            'list' => $servicos,
            '_serialize' => ['list']
        ]);         
    }

Segue minhas dúvidas:

1 - Fazendo assim... toda vez que fizer uma chamada ele vai criar uma nova instância do webservice?

2 - Se eu quiser fazer uma validação baseada no usuário do cakephp como eu faço para passar os valores?

Se alguém puder ajudar... 

Cauan Cabral

unread,
Mar 10, 2021, 2:20:33 PM3/10/21
to CakePHP Tuga
Boa tarde Hermiro

On Wed, Mar 10, 2021 at 4:01 PM Hermiro Carvalho <miro9...@gmail.com> wrote:
Boa tarde a todos.

Estou fazendo testes no cakephp 4 como uma API para o meu front-end.
O meu serviço esta funcionando, porém como eu não conheço muito gostaria de uma ajuda no sentido de melhorar a performance/passar valores.

Fiz o seguinte:
1 - No arquivo bootstrap.php inclui as seguintes linhas no final:

header('Access-Control-Allow-Origin: http://localhost:4200');
header('Access-Control-Allow-Methods: POST, GET, PUT, PATCH, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: *');
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
    exit(0);
}

No arquivo ServicosController tenho uma função que retorna uma lista em json:

    public function index2()
    {
        $servicos = $this->paginate($this->Servicos);

        $this->set(compact('servicos'));        
        $this->set([
            'list' => $servicos,
            '_serialize' => ['list']
        ]);         
    }

Segue minhas dúvidas:

1 - Fazendo assim... toda vez que fizer uma chamada ele vai criar uma nova instância do webservice?
Sim, PHP é uma linguagem interpretada, e tirando raras exceções, cada vez que você acessa o endereço da aplicação no servidor, uma nova instância é criada e executada.


2 - Se eu quiser fazer uma validação baseada no usuário do cakephp como eu faço para passar os valores?
Essa é uma pergunta difícil porque existem várias respostas. Você pode passar os dados do usuário via POST (no corpo da requisição), via um HEADER ou pela QUERY.
Em cada um dos casos, a forma de validar é diferente. Eu recomendo você dar uma olhada em como funciona a autenticação no CakePHP para não correr risco de fazer algo inseguro.
A documentação da autenticação está aqui: https://book.cakephp.org/authentication/2/en/index.html (se tiver dificuldade com o inglês avisa aqui no grupo que a gente pode ir auxiliando).


Se alguém puder ajudar... 

--
--
CakePHP Tuga (cakephp-pt)
 
Utilize http://bin.cakephp.org para códigos
Cookbook: http://book.cakephp.org
 
Website do CakePHP: http://cakephp.org/
Website do grupo: http://groups.google.com/group/cakephp-pt?hl=pt-PT
---
Recebeu esta mensagem porque subscreveu ao grupo "CakePHP Tuga" do Grupos do Google.
Para anular a subscrição deste grupo e parar de receber emails do mesmo, envie um email para cakephp-pt+...@googlegroups.com.
Para ver este debate na Web, visite https://groups.google.com/d/msgid/cakephp-pt/cd824eaa-090a-4c32-8032-98b682a81a12n%40googlegroups.com.

Att,
--
Cauan Cabral
----------------
Onde me encontrar: https://cauancabral.net

Reply all
Reply to author
Forward
0 new messages