A mágica por trás dos aplicativos ( Api com o Laravel )

24
A MÁGICA POR TRÁS DOS APLICATIVOS (API COM O LARAVEL)

Transcript of A mágica por trás dos aplicativos ( Api com o Laravel )

A MÁGICA POR TRÁS DOS APLICATIVOS

(API COM O LARAVEL)

QUEM SOU EU ?

Criador e mantenedor:

● https://www.facebook.com/groups/silexbrasil● https://www.facebook.com/groups/laravelsp● https://www.facebook.com/groups/phingbrasil● https://www.facebook.com/groups/sonicpibrasil● https://www.facebook.com/groups/doctrinebrasil

Instrutor:● 4 Linux● Webschool.io

QUEM SOU EU ?

Livro: Zend Certified Engineer - Descomplicando a certificação PHP.

QUEM SOU EU ?

Laravel Pagseguro:

https://github.com/michaeldouglas/laravel-pagseguro

O QUE É UMA API ?

● APIS no mobile será que você precisa saber disso ?● A utilização de APIs ficou bem famosa em nosso meio de

programação.○ Login do seu APP a partir do Auth do Facebook.○ Obter dados do usuário Facebook para o seu aplicativo.○ Obter os Tweets de um determinado usuário.○ E entre outros !

O QUE É UMA API ?

● REST(Representational State Transfer) ? - Basicamente é uma técnica de engenharia de software para sistemas de hipermídia.

● REST pode ajudar a abstrair a nossa interface de usuário com nossos agentes externos e com isso eliminar, por exemplo, um formulário de submissão de dados.

O QUE É UMA API ?

● E ao invés de necessitarmos de telas, passamos esses serviços para o conceito de comunicação HTTP aproveitando tudo que o protocolo já oferece.

O QUE É UMA API ?

● Acredito que uma das vantagens que o Laravel possui é a sua facilidade de implementação da comunicação heterogênea de aplicações, ou seja, além de você poder codificar o seu sistema utilizando o padrão MVC em um Framework bem completo e de fácil utilização você pode ir além disso pois você terá uma curva menor de aprendizado e implementação do seu sistema e de suas APIs.

O QUE É UMA API ?

● Para ajudar você a criar uma API RESTful você pode utilizar o Dingo: https://github.com/dingo/api

INSTALAÇÃO DO LARAVEL

● Existem duas maneiras de instalar o Laravel:○ Laravel installer: composer global require

"laravel/installer" - Por que desta forma ?■ Por que é possível utilizar o comando: laravel new

app● Instalação via composer:

○ composer create-project --prefer-dist laravel/laravel blog - Por que desta forma ?

INSTALAÇÃO DO LARAVEL

● Testando o Laravel, para realizar o teste você inicialmente precisa saber o que é o artisan:○ Artisan é o nome da interface para linha de comando incluida que faz

parte do Laravel.○ Um dos comandos interessantes do Artisan é a execução de um

comando para teste de um servidor embutido do PHP para utilizar você usará o comando:■ php artisan serve - Com esse comando você já consegue realizar o

seu primeiro teste do Laravel.■ Após o comando você verá uma tela de boas vindas do Laravel.

ESTRUTURA DO LARAVEL

● Vendor○ Essa pasta é gerada automaticamente

pelo composer.● Public

○ A pasta public é o seu DocumentRoot, ou seja, toda requisição efetuada pelo usuário cairão nela.

INSTALAÇÃO DO LARAVEL

● Config○ A pasta config é responsável por guardar os arquivos de configuração da

sua aplicação.● Storage

○ A pasta Storage é responsável por armazenar os arquivos de uso interno do Laravel tais como: Cache, logs e etc .

● App○ É a pasta principal do sistema basicamente é responsável por

armazenar grande parte do código que digitarmos.

CONFIGURANDO MEU ENVIRONMENT

● Primeiramente o que é Environment ?● Laravel utiliza o phpdotenv do vlucas.● Como verifico qual configuração de ambiente minhas

variáveis de ambiente estão ?○ Utilize o comando: php artisan env - Caso esteja

realizando o comando pela primeira vez é bem provável que retorne local o que é normal.

● Então existe a pasta Config e o .env qual a diferença ?

CONFIGURANDO MEU ENVIRONMENT

● Exemplo de um arquivo .env

INSTALANDO O DINGO

● Lembra do Dingo ? - Para instalar basta que você execute um comando !○ Lembrando que é na raiz do seu projeto Laravel que você executa o

comando:■ composer require dingo/api:1.0.x@devb

○ Agora iremos registrar o Provider do Dingo em config/app.php dessa maneira lembrando que você não deve apagar os já existentes:■ Dingo\Api\Provider\LaravelServiceProvider::class,

○ Em seguida você deve executar o comando para criar os configuradores do componente do Dingo em sua estrutura Laravel, da seguinte maneira:■ php artisan vendor:publish --provider="

Dingo\Api\Provider\LaravelServiceProvider"

CONFIGURANDO O DINGO

● Lembra do .env ? - Iremos inserir algumas configurações necessárias para a nossa API e para o Dingo. Existem três tipo de chave que podem ser usadas na configuração de árvore API_STANDARDS_TREE:○ Árvore do tipo ( x ) são destinadas a APIS para ambientes locais ou privados.○ Árvore do tipo ( PRS ) são destinados a projetos que não serão distribuídos

comercialmente.○ Árvore do tipo ( vnd ) são destinados a projetos públicos como é o nosso caso.○ Em nosso caso utilizaremos a configuração vnd. Para configurar você deverá

inserir em seu arquivo .env a seguinte instrução:■ API_STANDARDS_TREE=vnd

CONFIGURANDO O DINGO

● Ainda no arquivo .env devemos configurar o domínio da API em nosso caso será utilizado o domínio: api.palestra.laravel.○ Para configurar você deve inserir a seguinte chave e

valor no seu .ENV:■ API_DOMAIN=api.palestra.laravel

● Feita essa configuração você precisa informar esse HOST. ● Utilizaremos o domínio: api.palestral.laravel.

CONFIGURANDO O DINGO

● Para testar nossa aplicação Laravel nós iremos executar o comando:○ php artisan serve --host="api.palestra.laravel" --port=8000○ Ou seja, nós configuramos o host da nossa API para: api.palestra.laravel

e apenas nesse HOST que nossa API deve responder.○ Mas antes precisamos sabe onde fica o arquivo de rotas padrão do

Laravel.○ As rotas padrão do Laravel estão no caminho:

■ app/Http/routes.php○ Porém para nossa API Laravel iremos configurar nossos End Points de

uma maneira diferente do padrão Laravel.

PADRÃO DE ROTAS LARAVEL

● Onde ficas as rotas ?○ O caminho das rotas em Laravel ficam em: app/Http/routes.php○ Tipos de rotas que você pode utilizar: GET, POST, PUT e DELETE

END POINT DINGO

● Para criar seus primeiros END POINT você precisa inserir o seguinte código:○ $api = app('Dingo\Api\Routing\Router');○ E então inserir o padrão de rotas Laravel.

CHEGA DE SLIDES

● Iremos realizar a chamada de uma API de cadastro de pessoas. Utilizaremos o Postman e Ionic para simulação do APP de cadastro de pessoas e testes da API.

OBRIGADO

● Gostaria de agradecer a todos vocês. ● Em especial a equipe da Mobile Brazil Conference.