Primeiras aulas do curso Symfony Parte 1: Criação de uma API Restful

Symfony Parte 1: Criação de uma API Restful

Começando com Symfony - Introdução

Bem vindo(a) ao treinamento de API Rest com Symfony. Meu nome é Vinicius Dias e vou acompanhar você nessa jornada de aprendizado!

Nesse curso, desenvolveremos uma API que gerencia um consultório médico utilizando o padrão arquitetural Rest, que utiliza o que o HTTP tem de melhor para nos oferecer. Nessa API, poderemos acessar médicos e suas especialidades, fazer consultas, além de inserir, alterar ou remover médicos e suas especialidades.

Escolhemos o framework Symfony por ser bastante simples de aprender, mas também muito poderoso, sendo bastante utilizado principalmente na Europa. Vários projetos de e-commerce,gerenciadores de conteúdo e até mesmo outros frameworks utilizam o Symfony, o que garante uma grande solidez dessa ferramenta. Por ser fácil de aprender, poderemos focar nos conteúdos relacionados a Rest.

Esperamos que você goste e bons estudos!

Começando com Symfony - Apresentação do ambiente

Nesse vídeo iremos preparar o ambiente de desenvolvimento para o nosso curso de API com Symfony. Se você já tiver o ambiente configurado com o PHP a partir da versão 7.3, pode pular essa etapa. Também teremos um exercício escrito mostrando como configurar os ambientes caso você prefira.

Se você já tiver algum editor de texto ou IDE preferida, poderá utilizá-los sem problemas. Nesse curso, nosso instrutor utilizará o PhpStorm, que pode ser baixado no site oficial da JetBrains.

O PHP pode ser instalado diretamente pela linha de comando no Linux e no Mac. Já no Windows, você poderá acessar o site oficial do PHP, selecionar a versão mais nova, clicar em "Windows Downloads" e baixar o ZIP disponibilizado na página. Em seguida, deverá extrair os arquivos dessa pasta. Para conseguir digitar PHP diretamente da linha de comando, teremos que adicionar o caminho dessa extração às Variáveis de Ambiente.

Isso pode ser feito pesquisando por "ambiente" no menu Iniciar e acessando "Editar variáveis de ambiente". Em seguida, acessaremos a opção "Variáveis de ambiente", selecionaremos "Path", clicaremos em "Editar" e adicionaremos o caminho da pasta que acabamos de extrair.

Feito isso, poderemos abrir um novo terminal (no curso usarei o Windows PowerShell, mas você pode utilizar o Prompt de Comando se preferir) e executar php -v para exibir a versão instalada do PHP. Essa etapa concluída, subiremos um servidor web para o nosso ambiente de testes. Para isso, usaremos o php -S, um servidor embutido do próprio PHP.

Para ilustrar, criarei um arquivo index.php contendo apenas o phpinfo() e o salvarei na área de trabalho:

<?php phpinfo();

Pelo terminal, acessarei o desktop e subirei um servidor com php - S localhost:8080, ou seja, na própria máquina e na porta 8080. Como retorno, teremos o endereço que precisaremos acessar para visualizar o conteúdo que acabamos de criar, no caso, http://localhost:8080. Se acessarmos esse endereço no navegador, teremos as informações do PHP exibidas na tela.

Agora que configuramos o PHP, precisaremos de um gerenciador de dependências para manipularmos alguns pacotes que usaremos durante o curso, como o próprio Symfony. Esse gerenciador de dependências é o Composer, muito famoso e poderoso, que pode ser baixado em https://getcomposer.org/download. No Windows, você deverá baixar o instalador, executá-lo e seguir as instruções na tela. Já nos demais ambientes, basta executar os comandos disponibilizados na página. Para testarmos se o Composer está funcionando, podemos executar composer --version no terminal. Como retorno, teremos a versão que foi instalada.

No próximo vídeo começaremos a criar o nosso projeto.

Começando com Symfony - Criação da primeira rota

Para maior compatibilidade aconselhamos instalar o Symfony na versão 4.2. Para tal, segue o comando do composer que determina essa versão:

composer create-project symfony/skeleton consultorio-alura "^4.2"

Chegou o momento de criarmos um projeto usando o framework Symfony. Conheceremos um pouco mais dessa ferramenta e criaremos a primeira rota, ou seja, a primeira URL que conseguiremos acessar.

Para criarmos um projeto, acessaremos o site oficial do Symfony e leremos a documentação para descobrirmos como é feita a instalação.

Segundo as instruções, temos o comando composer create-project symfony/website-skeleton my-project', que cria um projeto baseado em um esqueleto de website. Porém, nós estamos criando uma API, e esse website traz alguns componentes que ajudam a montar HTML, entre outros que não precisaremos utilizar.

Nessa mesma página, o Symfony nos disponibiliza o comando composer create-project symfony/skeleton my-project, que serve justamente para criarmos uma API.

Observação: quando tentamos executar esse comando no Power Shell, tivemos alguns problemas e travamentos, por isso usaremos o Prompt de Comando!

Com o composer instalado, executaremos o comando acima substituindo o my-project pelo nome do projeto, que chamaremos de "consultorio-alura". A primeira execução levará algum tempo, pois o Composer irá baixar todas as dependências do Symfony.

Após a execução, terão sido instalados vários pacotes. O primeiro deles, symfony/flex. merece uma atenção especial. O Symfony tem muitos componentes que adicionam funcionalidades a ele, e abordaremos alguns nesse curso. Quando instalamos um desses plugins, esse pacote faz com que ele seja registrado no Symfony, de modo que não precisaremos editar arquivos de configuração, facilitando a nossa vida.

A saída do create-project também nos dá uma dica de como iniciar o projeto e vê-lo funcionando, e seguiremos algumas dessas etapas. A primeira delas é entrar no diretório que acabamos de criar, que é "consultorio-alura". Também nos é recomendado iniciar um repositório Git, mas não nos preocuparemos com isso agora.

A saída também nos pede para rodar um comando que adiciona um componente de servidor do Symfony. Ele levanta um servidor de testes da mesma forma que fizemos com o php -S. Como já conhecemos esse outro comando, vamos executá-lo, passando o endereço da nossa máquina e a porta "8080". A única diferença é que agora vamos informar o "target", ou seja, onde estão os arquivos que o Symfony precisa buscar, que é a pasta "public".

php -S localhost:8080 -t public 

Agora, se acessarmos http://localhost:8080, teremos uma mensagem de boas vindas a um projeto Symfony. Vamos, então, criar a nossa primeira rota utilizando o Symfony. Começaremos abrindo o projeto no PhpStorm ou na IDE de sua preferência.

Teremos uma estrutura de pastas contendo um arquivo console, que usaremos bastante nesse treinamento (para executar alguns comandos e outras facilidades); arquivos de configuração; um arquivo index.php, que é acessado pela nossa API e faz todo o roteamento; e uma pasta "src", que será o nosso foco e onde ficarão os nossos códigos.

Os nossos arquivos serão fisicamente separados por pastas - ou seja, quem recebe uma requisição estará dentro de uma pasta Controller, podemos criar uma pasta "Helper" para guardar os nossos auxiliares, e por aí em diante. A organização lógica das nossas classes se dará por pacotes (namespaces do php). Vamos criar um Controller para fazermos nossa primeira rota de "Olá mundo".

Clicaremos com o botão direito na pasta "Controller" e então em "New > PHP Class". Chamaremos o novo arquivo de OlaMundoController.php. Esse Controller terá somente um método, e cada método do nosso projeto será equivalente a uma URL que iremos acessar. Faremos então um método público OlaMundoAction() que executará echo 'Olá mundo!' e em seguida sairá com exit(), garantindo que nada mais será executado.

class OlaMundoController { 

    public function OlaMundoAction() {

    echo 'Olá Mundo!';
    exit();
    }
}

Podemos definir a URL que será acessada para executarmos esse código com uma annotation (anotação). Em um comentário acima do método, definiremos uma @Rota para, por exemplo, /ola:

<?php


namespace App\Controller;


class OlaMundoController
{
    /**
     * @Route("/ola")
     */
    public function OlaMundoAction() {

        echo 'Olá Mundo!';
        exit();
    }
}

Porém, esse código ainda não vai funcionar. Isso porque o projeto Symfony para uma API vem bem enxuto, sem o componente de annotations. De volta ao terminal, executaremos composer require annotation. Além de baixar o componente de anotação, o pacote flex que foi instalado anteriormente editará um arquivo de configuração para que as nossas rotas sejam buscadas a partir de anotações.

Existem algumas configurações que podem ser feitas nas annotations, mas por enquanto passaremos somente a URL. Uma annotation é, na verdade, uma classe, e como o Symfony irá encontrar essa classe? Para isso, adicionaremos uma importação do pacote de anotações com o use:

<?php


namespace App\Controller;
use Symfony\Component\Routing\Annotation\Route;



class OlaMundoController
{
    /**
     * @Route("/ola")
     */
    public function OlaMundoAction() {

        echo 'Olá Mundo!';
        exit();
    }
}

Agora, se subirmos o servidor e acessarmos http://localhost:8080/ola, receberemos como retorno a mensagem "Olá mundo!" que escrevemos no método. Essa é a forma do Symfony tratar requisições, receber e exibir informações para o usuário. No próximo vídeo, entenderemos melhor como retornar sem executar um exit() e como buscar alguns dados da requisição. Até lá!

Sobre o curso Symfony Parte 1: Criação de uma API Restful

O curso Symfony Parte 1: Criação de uma API Restful possui 147 minutos de vídeos, em um total de 60 atividades. Gostou? Conheça nossos outros cursos de PHP em Programação, ou leia nossos artigos de Programação.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda PHP acessando integralmente esse e outros cursos, comece hoje!

  • 1112 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

Premium

  • 1112 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75
à vista R$900
Matricule-se

Premium Plus

  • 1112 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100
à vista R$1.200
Matricule-se

Max

  • 1112 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120
à vista R$1.440
Matricule-se
Procurando planos para empresas?
Acesso por 1 ano
Estude 24h/dia onde e quando quiser
Novos cursos toda semana