API RESTful PHP com Laravel

Laravel

É um framework PHP com sintaxe elegante e expressiva, como os desenvolvedores definem. Ele usa arquitetura MVC deixando o código limpo e ajuda a desenvolver aplicações seguras e robustas de forma ágil e eficiente. Laravel conta com uma documentação vasta, o que torna o uso fácil e o conteúdo acessível.

A grande vantagem é sem dúvida a agilidade, pois podemos criar rotas, controles e vistas (views) com pouquíssimo código. E se, como no caso deste post, você pretende apenas criar uma API RESTful a coisa se torna mais rápida ainda.

Nossa API

Faremos uma API simples para cadastro, edição, listagem e exclusão de pessoas. Usando os métodos HTTP: POST, GET, PUT e DELETE.

Instalando o Laravel

Você pode usar o instalador do Larvel, executando o seguinte comando no bash:

$ composer global require “laravel/installer”

O Laravel será instalado de forma global. Depois você pode iniciar um aplicativo Laravel com o seguinte comando:

$ laravel new exemplo

Lembrando que exemplo será o nome da pasta de sua aplicação.

Criando projeto com composer

Você pode usar o comando create-project  do composer, que é a alternativa mais indicada para usuários Windows. Veja como fazer:

$ composer create-project laravel/laravel exemplo --prefer-dist

Será criada a pasta exemplo e dentro dela uma série de pastas e arquivos do Laravel. As principais pastas que iremos usar serão app config.

Importante

Acesse o arquivo app/Kernel.php e apague a linha

A partir da versão 5, o Laravel usa por padrão um middleware para previnir CSRF. Como não estamos construindo um site, mas sim uma API não podemos usar este middleware

Configurando o Virtual Host

Você precisa configurar um virtual host para apontar para a pasta da sua aplicação de exemplo. Farei este exemplo usando WAMP instalado obviamente em um computador com sistema operacional Windows.

Arquivos hosts

Primeiro abra o arquivo hosts do Windows, que está em C:\Windows\System32\drivers\etc e adicione o seguinte no final:

127.0.0.1    laravel.exemplo

laravel.exemplo será o domínio para acessar nossa api.

Virtual host

Se você estiver usando Windows e WAMP o arquivo de virtual hosts estará emC:\wamp\bin\apache\apache2.4.17\conf\extra, tenha atenção à versão do apache.

Adicione o seguinte no arquivo:

Você deve colocar o caminho da sua API apontando para a pasta public, por exemplo:C:/wamp/www/exemplo/public

Acesse o endereço laravel.exemplo no seu navegador. Você verá a tela de demonstração do Laravel.

Lembrando a configuração do Virtual Hosts pode ser diferente em determinados sistemas operacionais.

Banco de dados

Crie um banco de dados e uma tabela simples para cadastro de pessoas.

Configuração

Abra o arquivo database.php que está dentro da pasta config da sua aplicação Laravel, e você verá um vetor com diversas chaves, uma delas será a connections onde você vai encontrar exemplos de conexões de bancos de dados SQLite, MySQL e PostgreSQL. Usaremos MySQL, então modifique as configurações para o seguinte:

O Laravel conta com uma classe pronta para execução de queries e comandos no banco de dados. Em breve veremos mais sobre.

Criando Controller

O Laravel conta com uma interface de linha de comandos chamada Artisan, que serve para ajudar na criação de controllers, migração de banco de dados, etc. Você pode ter mais detalhes na documentação oficial.

Usando o prompt de comando, bash ou terminal, navegue até a pasta da sua aplicação usando o comando:

$ cd c:/wamp/www/exemplo

E depois execute o seguinte comando:

$ php artisan make:controller PessoaController

Dentro da pasta app/Http/Controllers você encontrará o arquivo PessoaController.php com o seguinte conteúdo:

Nós iremos edita-lo, para que fique assim:

Veja na linha 9 que evocamos a classe DB para usar o banco de dados;

Nas linhas 20 29 é verificado se existe dados enviados usando form-data ou se eles foram enviados usando rawpor exemplo.

Rotas

Para usar os métodos do Controller temos que usar rotas, que usam as requisições HTTP e direcionam para os controllers e métodos corretos.

No Laravel as rotas estão no arquivo app/Http/routes.php, adicione as seguintes rotas nele:

Pronto, agora é só testar sua API usando algum cliente REST como o Postman, ou testando via AJAX.

Veja o projeto no GitHub.

Mais simples

Existem vários outros frameworks para construir APIs com PHP, um deles é o Slim Framework, que é na verdade um micro-framework, e é bem mais simples que o Laravel. Veja como construir uma API RESTful com PHP e Slim Framework.

Laravel + AngularJS – sua primeira aplicação

Há alguns dias atrás vimos aqui no Br system um tutorial de como criar uma API RESTful usando o framework Laravel. Hoje faremos um post semelhante, mas a diferença é que faremos a comunicação entre a API Laravel e uma aplicação AngularJS.

Nossa API

Faremos uma API simples para cadastro, edição, listagem e exclusão de pessoas. Usando os métodos HTTP: POST, GET, PUT e DELETE.

Instalando o Laravel

Você pode usar o instalador do Larvel, executando o seguinte comando no bash:

$ composer global require “laravel/installer”

O Laravel será instalado de forma global. Depois você pode iniciar um aplicativo Laravel com o seguinte comando:

$ laravel new exemplo

Lembrando que exemplo será o nome da pasta de sua aplicação.

Criando projeto com composer

Você pode usar o comando create-project  do composer, que é a alternativa mais indicada para usuários Windows. Veja como fazer:

$ composer create-project laravel/laravel exemplo --prefer-dist

Será criada a pasta exemplo e dentro dela uma série de pastas e arquivos do Laravel. As principais pastas que iremos usar serão app config.

Configurando o Virtual Host

Você precisa configurar um virtual host para apontar para a pasta da sua aplicação de exemplo. Farei este exemplo usando WAMP instalado obviamente em um computador com sistema operacional Windows.

Arquivos hosts

Primeiro abra o arquivo hosts do Windows, que está em C:\Windows\System32\drivers\etc e adicione o seguinte no final:

127.0.0.1    laravel.exemplo

laravel.exemplo será o domínio para acessar nossa api.

Virtual host

Se você estiver usando Windows e WAMP o arquivo de virtual hosts estará emC:\wamp\bin\apache\apache2.4.17\conf\extra, tenha atenção à versão do apache.

Adicione o seguinte no arquivo:

Você deve colocar o caminho da sua API apontando para a pasta public, por exemplo:C:/wamp/www/exemplo/public

Acesse o endereço laravel.exemplo no seu navegador. Você verá a tela de demonstração do Laravel.

Lembrando a configuração do Virtual Hosts pode ser diferente em determinados sistemas operacionais.

Banco de dados

Crie um banco de dados chamado api para que possamos usar no nosso exemplo.

Configuração

Abra o arquivo database.php que está dentro da pasta config da sua aplicação Laravel, e você verá um vetor com diversas chaves, uma delas será a connections onde você vai encontrar exemplos de conexões de bancos de dados SQLite, MySQL e PostgreSQL. Usaremos MySQL, então modifique as configurações para o seguinte:

O Laravel conta com uma classe pronta para execução de queries e comandos no banco de dados. Em breve veremos mais sobre.

Criando tabela

O Laravel conta com uma interface de linha de comandos chamada Artisan, que serve para ajudar na criação de controllers, migração de banco de dados, etc. Você pode ter mais detalhes na documentação oficial.

Usaremos o Artisan para criar nossa tabela. Volte para o bash ou prompt de comando e execute o seguinte comando dentro da pasta raiz da aplicação laravel criada.

$ php artisan make:migration table_pessoas

Será criado um arquivo dentro da pasta database/migrations/ o nome dele será composto pela data e hora atual mais o termo informado table_pessoas e ele terá extensão .php.

Abra esse arquivo e veja que ele é basicamente uma classe que conta com dois métodos (up down) sem conteúdo algum dentro deles.

Adicionaremos o seguinte código dentro do método up():

E no método down() adicionaremos o seguinte:

Você pode apagar os demais arquivos dentro da pasta migrations se desejar.

Agora execute o seguinte comando no bash:

$ php artisan migrate

Você verá que será criada a tabela pessoas no seu banco de dados.

Criando Controller

Usando o prompt de comando execute o seguinte comando:

$ php artisan make:controller PessoaController

Dentro da pasta app/Http/Controllers você encontrará o arquivo PessoaController.php com o seguinte conteúdo:

Nós iremos edita-lo, para que fique assim:

Veja na linha 9 que evocamos a classe DB para usar o banco de dados;

Nas linhas 23 31 é verificado se existe dados enviados usando form-data ou se eles foram enviados usando raw por exemplo.

Rotas

Para usar os métodos do Controller temos que usar rotas, que usam as requisições HTTP e direcionam para os controllers e métodos corretos.

No Laravel as rotas estão no arquivo app/Http/routes.php, adicione as seguintes rotas nele:

A API está pronta, agora partiremos para o desenvolvimento do lado da aplicação AngularJS.

Nossa aplicação

Se você é novo em AngularJS, sugiro que veja alguns posts presentes no site Awesome-br.

Instalando dependências

Pelo bash ou prompt de comando acesse a pasta de sua aplicação Laravel e depois a pasta public usando o comando cd. (Ex.: cd aplicacao/public).

Execute o seguinte comando para instalar as dependências por meio do NPM:

$ npm install angular bootstrap jquery@1.9.1

A pasta node_modules  será criada dentro da pasta public e dentro dela estarão as dependências.

Criando view

Na pasta resources/views crie um arquivo com o nome index.php. Esta será a página principal da nossa aplicação. Este arquivo terá o seguinte conteúdo:

Note na linha 14 que chamamos o arquivo app.js que deve ser criado na pasta public.

app.js

Dentro da pasta public crie uma pasta chamada app e dentro dela um arquivo app.js. Nele estará o nosso aplicativo AngularJS.

Concluindo

Para testar basta acessar o endereço laravel.exemplo no seu navegador. Quaisquer erros, problemas ou sugestões deixe um comentário.

Desenvolvendo com Python e Eclipse

Porque estudar Python?

É uma linguagem de programação de alto nível (VHLL – Very High Level Language), criada pelo holandês Guido van Rossum

Sob o ideal “Programação de Computadores para todos”. Ideia a qual fez Python ser gratuito, código aberto, disponibilidade para rodar em Linux, Windows, Mac, Palm, em Celulares, e outras infinidades de sistemas. Uma linguagem orientada a objetos, porem permite que programe de forma procedural se desejar.  É altamente “modular” significa que provavelmente alguém já fez/parte do programa que você precisa desenvolver, economizando tempo. Grandes empresa e Universidades como Philips, Industrial Light and Magic, usa Python para controlar efeitos especiais de Star Wars, a NASA, USA, Nokia, Disney, Google, Yahoo e outros.

Simplicidade:

Ler o código de um programa em Python é semelhante como ler um texto em inglês, embora um inglês bem limitado. Este pseudo-código do Python é uma das suas grandes vantagens. Ele permite ao programador concentrar-se na solução do problema em vez de concentrar-se na linguagem propriamente dita.

Facilidade de aprender:

Python é extremamente fácil, sua sintaxe é muito simples.

Software livre:

Significa que você pode distribuir cópias, ter acesso ao código fonte , alterar, modificar, redistribuir e utilizar pedaços dele em outros programas. O software livre é baseado no conceito de uma comunidade que compartilha conhecimento. Esta é uma das razões porque o Python é tão bom. Ele foi criado e está em constante aperfeiçoamento por uma comunidade que só quer vê-lo crescer.

Linguagem de alto nível:

Você não precisa se preocupar com detalhes de baixo nível como gerenciamento de memória, etc.

Portabilidade:

Portável para diversas arquiteturas, isto significa que seu programa escrito para Linux pode facilmente rodar em Windows, FreeBSD, Macintosh, Solaris, OS/2, Amiga, AROS, AS/400, BeOS, OS/390, z/OS, Palm OS, QNX, VMS, Psion, Acorn RISC OS, VxWorks, PlayStation, Sharp Zaurus, Windows CE e até mesmo PocketPC ! Quer mais ???

Linguagem interpretada:

Um programa escrito numa linguagem que exige compilação como C ou C++ necessita ser convertido da linguagem fonte (C ou C++) para uma linguagem que o computador entenda (código binário; zeros e uns) . Isto é feito usando uma ferramenta chamada compilador. Python por sua vez, não precisa disto. Ele é uma linguagem interpretada, assim o código de um programa Python é lido e executado pelo interpretador Python sem necessitar de compilação. Isto torna seus códigos portáveis. Assim basta copiar seu código para outra arquitetura e executá-lo, praticamente sem modificação nenhuma.

Orientação a objetos:

Python suporta tanto a programação orientada a função quanto a programação orientada a objetos. Em linguagens de programação orientadas a função o programa é construído em torno de funções que nada mais são que pedaços de código reutilizável. Em linguagens de programação orientadas a objetos o programa é construído em torno de objetos os quais combinam dados e funcionalidade. Python tem uma maneira poderosa porém simples de implementar a orientação a objetos, especialmente quando comparada a grandes linguagens como C++ ou Java.

Extensível:

Se você precisa que um pedaço do seu código rode bem mais rápido ou não quer que determinada parte do seu algoritmo seja código livre, você pode codificar esta parte em C ou C++ e usá-la em seu programa Python.

Pode ser embutido:

Você pode embutir Python em seus programas C/C++ para oferecer características de scripting aos usuários de seu programa.

Muitas bibliotecas:

A biblioteca padrão do Python é enorme. Elas podem ajudá-lo a fazer várias coisas como trabalhar com expressões regulares, banco de dados, navegadores, CGI, ftp, email, XML, XML-RPC, HTML, arquivos WAV, criptografia, GUI (interfaces gráficas), Tk, gerar documentação, threading, etc. Além da biblioteca padrão existem outras bibliotecas de alto nível como wxPython, Twisted, Python Imaging Library e muitas outras.

Então Mão no Teclado.

Passo 1:

Durante o procedimento deve está conectado a internet, abra a IDE Eclipse:

1

Abrirá uma nova janela, clique  no Botão Add…

2

Abrira outra janela e informe: Name: Python; Location: http://pydev.org/update/

2.12.2

Clique em OK.

Selecione os dois itens e Next;

3

Conclua toda a instalação e aceite os termos.

Passo 2:

New/Project…

4

Na janela que foi aberta, navegue até PyDev e escolha a opção PyDevProject.

5

Na janela que foi aberta configure da seguinte forma:

Project name: Python_1

Na caixa de seleção Use default desmarque e escolha o lugar onde você deseja salvar seus códigos python

Grammar Version, escolha 3.0 ou a maior disponível.

Interpreter, escolha python

e por fim selecione Creat ‘src’ folder and add in to the PYTHONPATH

6

Clique com o botão direito do mouse em cima do projeto criado, Python_1/New/PyDev Package

7

De um nome ao pacote:

Source Folde: /Python_1/src

Name: python

8

Na class que foi automaticamente criada digite o seguinte código:

Quando executar o código escolha a seguinte opção caso solicite:

9

Esse é o nosso Olá Mundo em Python, espero que gostem, em breve estarei postando uma aplicação com interface.

Até a próxima.

Links: Pythonology Python Brasil