SlideShare a Scribd company logo
1 of 24
Download to read offline
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 ?
https://www.github.com/michaeldouglas
https://www.twitter.com/mdba_araujo
https://www.facebook.com/mdba.araujo
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:
■ DingoApiProviderLaravelServiceProvider::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="
DingoApiProviderLaravelServiceProvider"
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('DingoApiRoutingRouter');
○ 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.

More Related Content

What's hot

Construindo uma API, Client e Documentação usando Silex, Angular e Swagger
Construindo uma API, Client e Documentação usando Silex, Angular e SwaggerConstruindo uma API, Client e Documentação usando Silex, Angular e Swagger
Construindo uma API, Client e Documentação usando Silex, Angular e SwaggerDelermando Santos Miranda
 
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Tiago Hillebrandt
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panosLaís Lima
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panosLaís Lima
 
Laravel 5
Laravel 5Laravel 5
Laravel 5DevMT
 
C# 6.0 - Interopmix 2015
C# 6.0 - Interopmix 2015C# 6.0 - Interopmix 2015
C# 6.0 - Interopmix 2015Renato Groff
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyRelsi Maron
 
C# 6.0 - DotNetBaixada - Novembro/2015
C# 6.0 - DotNetBaixada - Novembro/2015C# 6.0 - DotNetBaixada - Novembro/2015
C# 6.0 - DotNetBaixada - Novembro/2015Renato Groff
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetosFrancisco Santos
 
php orientado_a_objetos
php orientado_a_objetosphp orientado_a_objetos
php orientado_a_objetosFer Nando
 
Iniciando com o_zend_framework
Iniciando com o_zend_frameworkIniciando com o_zend_framework
Iniciando com o_zend_frameworkMilton Rodrigues
 
Testes com javascript
Testes com javascriptTestes com javascript
Testes com javascriptLaís Lima
 
Async/Await Pattern in C#
Async/Await Pattern in C#Async/Await Pattern in C#
Async/Await Pattern in C#Leandro Silva
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao TerraformLeandro Silva
 
Workshop react + adonis.js
Workshop react + adonis.jsWorkshop react + adonis.js
Workshop react + adonis.jsDenis Velrino
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonIgor Sobreira
 

What's hot (19)

Construindo uma API, Client e Documentação usando Silex, Angular e Swagger
Construindo uma API, Client e Documentação usando Silex, Angular e SwaggerConstruindo uma API, Client e Documentação usando Silex, Angular e Swagger
Construindo uma API, Client e Documentação usando Silex, Angular e Swagger
 
Como fazer boas libs
Como fazer boas libs Como fazer boas libs
Como fazer boas libs
 
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
 
Web Offline
Web OfflineWeb Offline
Web Offline
 
Curso de ReactJS
Curso de ReactJSCurso de ReactJS
Curso de ReactJS
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
Laravel 5
Laravel 5Laravel 5
Laravel 5
 
C# 6.0 - Interopmix 2015
C# 6.0 - Interopmix 2015C# 6.0 - Interopmix 2015
C# 6.0 - Interopmix 2015
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2py
 
C# 6.0 - DotNetBaixada - Novembro/2015
C# 6.0 - DotNetBaixada - Novembro/2015C# 6.0 - DotNetBaixada - Novembro/2015
C# 6.0 - DotNetBaixada - Novembro/2015
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
 
php orientado_a_objetos
php orientado_a_objetosphp orientado_a_objetos
php orientado_a_objetos
 
Iniciando com o_zend_framework
Iniciando com o_zend_frameworkIniciando com o_zend_framework
Iniciando com o_zend_framework
 
Testes com javascript
Testes com javascriptTestes com javascript
Testes com javascript
 
Async/Await Pattern in C#
Async/Await Pattern in C#Async/Await Pattern in C#
Async/Await Pattern in C#
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao Terraform
 
Workshop react + adonis.js
Workshop react + adonis.jsWorkshop react + adonis.js
Workshop react + adonis.js
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com Python
 

Viewers also liked

Construindo aplicações CLI com Symfony Console
Construindo aplicações CLI com Symfony ConsoleConstruindo aplicações CLI com Symfony Console
Construindo aplicações CLI com Symfony ConsoleBruno Ricardo Siqueira
 
API's Abertas Na Web 2 0
API's Abertas Na Web 2 0API's Abertas Na Web 2 0
API's Abertas Na Web 2 0grupoass
 
Laravel + OAuth 2.0 Server
Laravel + OAuth 2.0 ServerLaravel + OAuth 2.0 Server
Laravel + OAuth 2.0 ServerDaniel Satiro
 
"Streamizando" com sucesso
"Streamizando" com sucesso"Streamizando" com sucesso
"Streamizando" com sucessoBruno Oliveira
 
Como se tornar um desenvolvedor faixa preta
Como se tornar um desenvolvedor faixa pretaComo se tornar um desenvolvedor faixa preta
Como se tornar um desenvolvedor faixa pretaLeonardo Lourenço Silva
 
Entendendo a Arquitetura MVC do Zend Framework
Entendendo a Arquitetura MVC do Zend FrameworkEntendendo a Arquitetura MVC do Zend Framework
Entendendo a Arquitetura MVC do Zend FrameworkGedvan Dias
 
(Intercon) wordpress como framework de desenvolvimento
(Intercon) wordpress como framework de desenvolvimento(Intercon) wordpress como framework de desenvolvimento
(Intercon) wordpress como framework de desenvolvimentoRicardo Zein
 
Como implementar APIs RESTful em PHP
Como implementar APIs RESTful em PHPComo implementar APIs RESTful em PHP
Como implementar APIs RESTful em PHPPablo Aguiar
 
Comunicação em tempo real com WebRTC e PHP
Comunicação em tempo real com WebRTC e PHPComunicação em tempo real com WebRTC e PHP
Comunicação em tempo real com WebRTC e PHPMichael Douglas
 
MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.Leonardo Quevedo
 
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014Julio Bitencourt
 
MongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saberMongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saberChristiano Anderson
 
Apostila de Introdução ao C#.net
Apostila de Introdução ao C#.netApostila de Introdução ao C#.net
Apostila de Introdução ao C#.netAndre Nascimento
 
Introdução a robótica
Introdução a robóticaIntrodução a robótica
Introdução a robóticaCharles Fortes
 
Criando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONCriando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONMarcio Junior Vieira
 

Viewers also liked (20)

Construindo aplicações CLI com Symfony Console
Construindo aplicações CLI com Symfony ConsoleConstruindo aplicações CLI com Symfony Console
Construindo aplicações CLI com Symfony Console
 
Riesgos
RiesgosRiesgos
Riesgos
 
API's Abertas Na Web 2 0
API's Abertas Na Web 2 0API's Abertas Na Web 2 0
API's Abertas Na Web 2 0
 
Laravel + OAuth 2.0 Server
Laravel + OAuth 2.0 ServerLaravel + OAuth 2.0 Server
Laravel + OAuth 2.0 Server
 
"Streamizando" com sucesso
"Streamizando" com sucesso"Streamizando" com sucesso
"Streamizando" com sucesso
 
Curso AngularJS - Parte 2
Curso AngularJS - Parte 2Curso AngularJS - Parte 2
Curso AngularJS - Parte 2
 
ASP.NET - Recursos de Configuração
ASP.NET - Recursos de ConfiguraçãoASP.NET - Recursos de Configuração
ASP.NET - Recursos de Configuração
 
Como se tornar um desenvolvedor faixa preta
Como se tornar um desenvolvedor faixa pretaComo se tornar um desenvolvedor faixa preta
Como se tornar um desenvolvedor faixa preta
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Nodejs e Socket.io
Nodejs e Socket.ioNodejs e Socket.io
Nodejs e Socket.io
 
Entendendo a Arquitetura MVC do Zend Framework
Entendendo a Arquitetura MVC do Zend FrameworkEntendendo a Arquitetura MVC do Zend Framework
Entendendo a Arquitetura MVC do Zend Framework
 
(Intercon) wordpress como framework de desenvolvimento
(Intercon) wordpress como framework de desenvolvimento(Intercon) wordpress como framework de desenvolvimento
(Intercon) wordpress como framework de desenvolvimento
 
Como implementar APIs RESTful em PHP
Como implementar APIs RESTful em PHPComo implementar APIs RESTful em PHP
Como implementar APIs RESTful em PHP
 
Comunicação em tempo real com WebRTC e PHP
Comunicação em tempo real com WebRTC e PHPComunicação em tempo real com WebRTC e PHP
Comunicação em tempo real com WebRTC e PHP
 
MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.
 
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014
 
MongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saberMongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saber
 
Apostila de Introdução ao C#.net
Apostila de Introdução ao C#.netApostila de Introdução ao C#.net
Apostila de Introdução ao C#.net
 
Introdução a robótica
Introdução a robóticaIntrodução a robótica
Introdução a robótica
 
Criando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONCriando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSON
 

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

Laravel + Vue: Como começar
Laravel + Vue: Como começarLaravel + Vue: Como começar
Laravel + Vue: Como começarLeandro Ferreira
 
Vagrant uma ferramenta realmente útil e versátil
Vagrant   uma ferramenta realmente útil e versátilVagrant   uma ferramenta realmente útil e versátil
Vagrant uma ferramenta realmente útil e versátilWanderlei Silva do Carmo
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + PythonMateus Padua
 
Web Training Aula 03: Introduction to Laravel
Web Training Aula 03: Introduction to LaravelWeb Training Aula 03: Introduction to Laravel
Web Training Aula 03: Introduction to LaravelMozDevz
 
Google App Engine e PHP
Google App Engine e PHPGoogle App Engine e PHP
Google App Engine e PHPLuiz Messias
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimentamichel adriano medeiros
 
PW01 - Introdução a programação em PHPv7
PW01 - Introdução a programação em PHPv7PW01 - Introdução a programação em PHPv7
PW01 - Introdução a programação em PHPv7Silvano Oliveira
 
Seguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP SnifferSeguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP SnifferVinicius Warto Campos
 
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPressFerramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPressTiago Hillebrandt
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkFlávio Lisboa
 
Preparar o ambiente para desenvolvimento angular
Preparar o ambiente para desenvolvimento angularPreparar o ambiente para desenvolvimento angular
Preparar o ambiente para desenvolvimento angularNize Costa
 
Ligação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPelliando dias
 
2290494 integrando-flex-com-php
2290494 integrando-flex-com-php2290494 integrando-flex-com-php
2290494 integrando-flex-com-phpBrenno Abreu
 
php4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHPphp4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHPRamon Ribeiro Rabello
 
Construção e provisionamento de ambientes de desenvolvimento virtualizados
Construção e provisionamento de ambientes  de desenvolvimento virtualizadosConstrução e provisionamento de ambientes  de desenvolvimento virtualizados
Construção e provisionamento de ambientes de desenvolvimento virtualizadosThiago Rodrigues
 
Quercus - Running PHP over Java
Quercus - Running PHP over Java Quercus - Running PHP over Java
Quercus - Running PHP over Java Jeff Prestes
 
WebVibe Barueri 2011 - "PHP por quê ?"
WebVibe Barueri 2011 - "PHP por quê ?"WebVibe Barueri 2011 - "PHP por quê ?"
WebVibe Barueri 2011 - "PHP por quê ?"Hélio Costa e Silva
 

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

Laravel + Vue: Como começar
Laravel + Vue: Como começarLaravel + Vue: Como começar
Laravel + Vue: Como começar
 
Vagrant uma ferramenta realmente útil e versátil
Vagrant   uma ferramenta realmente útil e versátilVagrant   uma ferramenta realmente útil e versátil
Vagrant uma ferramenta realmente útil e versátil
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
 
Web Training Aula 03: Introduction to Laravel
Web Training Aula 03: Introduction to LaravelWeb Training Aula 03: Introduction to Laravel
Web Training Aula 03: Introduction to Laravel
 
Mastering Laravel
Mastering LaravelMastering Laravel
Mastering Laravel
 
Google App Engine e PHP
Google App Engine e PHPGoogle App Engine e PHP
Google App Engine e PHP
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
 
PW01 - Introdução a programação em PHPv7
PW01 - Introdução a programação em PHPv7PW01 - Introdução a programação em PHPv7
PW01 - Introdução a programação em PHPv7
 
Seguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP SnifferSeguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP Sniffer
 
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPressFerramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend Framework
 
Preparar o ambiente para desenvolvimento angular
Preparar o ambiente para desenvolvimento angularPreparar o ambiente para desenvolvimento angular
Preparar o ambiente para desenvolvimento angular
 
Apostila ph pwamp
Apostila ph pwampApostila ph pwamp
Apostila ph pwamp
 
Ligação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHP
 
2290494 integrando-flex-com-php
2290494 integrando-flex-com-php2290494 integrando-flex-com-php
2290494 integrando-flex-com-php
 
php4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHPphp4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHP
 
Construção e provisionamento de ambientes de desenvolvimento virtualizados
Construção e provisionamento de ambientes  de desenvolvimento virtualizadosConstrução e provisionamento de ambientes  de desenvolvimento virtualizados
Construção e provisionamento de ambientes de desenvolvimento virtualizados
 
PHP: Como não programar em POG
PHP: Como não programar em POGPHP: Como não programar em POG
PHP: Como não programar em POG
 
Quercus - Running PHP over Java
Quercus - Running PHP over Java Quercus - Running PHP over Java
Quercus - Running PHP over Java
 
WebVibe Barueri 2011 - "PHP por quê ?"
WebVibe Barueri 2011 - "PHP por quê ?"WebVibe Barueri 2011 - "PHP por quê ?"
WebVibe Barueri 2011 - "PHP por quê ?"
 

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

  • 1. A MÁGICA POR TRÁS DOS APLICATIVOS (API COM O LARAVEL)
  • 2. 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
  • 3. QUEM SOU EU ? https://www.github.com/michaeldouglas https://www.twitter.com/mdba_araujo https://www.facebook.com/mdba.araujo
  • 4. QUEM SOU EU ? Livro: Zend Certified Engineer - Descomplicando a certificação PHP.
  • 5. QUEM SOU EU ? Laravel Pagseguro: https://github.com/michaeldouglas/laravel-pagseguro
  • 6. 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 !
  • 7. 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.
  • 8. 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.
  • 9. 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.
  • 10. O QUE É UMA API ? ● Para ajudar você a criar uma API RESTful você pode utilizar o Dingo: https: //github.com/dingo/api
  • 11. 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 ?
  • 12. 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.
  • 13. 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.
  • 14. 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.
  • 15. 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 ?
  • 16. CONFIGURANDO MEU ENVIRONMENT ● Exemplo de um arquivo .env
  • 17. 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: ■ DingoApiProviderLaravelServiceProvider::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=" DingoApiProviderLaravelServiceProvider"
  • 18. 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
  • 19. 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.
  • 20. 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.
  • 21. 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
  • 22. END POINT DINGO ● Para criar seus primeiros END POINT você precisa inserir o seguinte código: ○ $api = app('DingoApiRoutingRouter'); ○ E então inserir o padrão de rotas Laravel.
  • 23. 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.
  • 24. OBRIGADO ● Gostaria de agradecer a todos vocês. ● Em especial a equipe da Mobile Brazil Conference.