Desenvolvimento
Web II
Gil Eduardo de Andrade
Web Service PHP – Rest
Frameworks: Slim e Laravel
(get/ post / put / delete)
Web Service
Introdução:
• Um web service pode ser definido como uma
tecnologia
que
permite
integrar
diversos
sistemas de diferentes plataformas;
• Ele permite que novas aplicações desenvolvidas
interajam com sistemas já existentes;
Web Service
Introdução:
• A interação tem como base protocolos
(HTTP /
HTTPS)
que possibilitam que as aplicações trocam
dados entre si.
• Os dados trocados possuem algum de tipo de
formato conhecido como, por exemplo, XML,
CSV, JSON e texto puro;
Web Service
Estrutura:
• Um web service ou serviço web possuem como
estrutura, que permite seu funcionamento:
– Arquitetura cliente-servidor;
– Recursos fornecidos via HTTP;
– URL para acesso;
• A resposta de um web service para uma dada
requisição pode conter formatos como: XML, Json,
etc.
Web Service
Funcionalidade:
• Um web service permite que sistemas já
existentes disponibilizem serviços públicos a
aplicações
secundárias
e
muitas
vezes
desconhecidas;
• Isso possibilita que aplicações externas ao
domínio onde web service está hospedado
possam acessá-lo
(enviando ou recebendo dados)
.
Web Service
Benefícios:
• Integração de informação e sistemas: permitem
integrar qualquer tipo de sistema
(Windows, Linux, IOS,
Android)
e linguagens de programação
(PHP, Java,
Python)
;
• Reutilização de código: após implementado
pode ser utilizado por diversas aplicações, sem
necessidade de reescrita;
Web Service
Benefícios:
• Maior segurança: evita, por exemplo, que
aplicações façam comunicação direta com bases
de dados;
• Redução de custos: fazem uso
(tiram proveito)
de
protocolos e infraestruturas web já existentes, o
que diminui a necessidade de investimento;
Web Service
Exemplos de uso:
• Facebook Graph API
– Leitura e gravação de dados para o Facebook;
• Twitter REST APIs
– Leitura e escrita de dados no Twitter;
• Google Maps APIs Web Service
– Fornece dados geográficos para aplicativos de mapa;
Web Service
Padrão Rest:
• Possui
o
protocolo
HTTP
como
base
fundamental para comunicação;
• Tem como princípio fornecer uma estrutura de
comunicação
menos
rígida,
não
havendo
restrição no formato das mensagens;
• Entretanto, o formato Json costuma ser muito
utilizado;
Web Service na Prática
Framework Slim
www.gileduardo.com.br/ifpr/dwii/downloads/slim.zip
www.gileduardo.com.br/ifpr/dwii/downloads/ex_doc10.zip
Framework Slim
Exemplo:
(Código básico – principais métodos)
Como visto anteriormente, web services que utilizam o padrão Rest (caso do Slim) são fortemente baseados no protocolo HTTP. Neste contexto, as principais requisições desse protocolo (GET e POS) podem ser tratadas pelo framework Slim. No código ao lado, temos os métodos GET com e sem recebimento de parâmetro e o método POST. Quando um cliente efetua uma dessas requisições, uma reposta em formato HTML é produzida (comando echo) identificando o método invocado pelo cliente. Para testar nosso web service utilizaremos o aplicativo POSTMAN (plugin do Google Chorme) como cliente.
Aplicativo POSTMAN
Cliente POSTMAN:
(efetuando requisições ao web service)
Aula 10: Web Service - Frameworks Slim e Laravel
Método Requisitado pelo cliente POSTMAN – GET
URL do web service, invoca a rota “/” sem
passar parâmetros.
Permite testar se o web service está OK.
Aplicativo POSTMAN
Cliente POSTMAN:
(efetuando requisições ao web service)
Método Requisitado pelo cliente POSTMAN – GET
URL do web service, invoca a rota “/” sem
passar parâmetros.
Permite testar se o web service está OK.
Framework Slim
Exemplo:
(Código básico – principais métodos)
Aula 10: Web Service - Frameworks Slim e Laravel
No código ao lado, temos os métodos PUT (utilizado para atualizar ou inserir um recurso) e DELETE (utilizado para remover um recurso). Assim como mostrado anteriormente, quando um cliente efetua uma dessas requisições, uma reposta em formato HTML é
produzida (comando echo)
identificando o método invocado pelo cliente.
Aplicativo POSTMAN
Cliente POSTMAN:
(efetuando requisições ao web service)
Método Requisitado pelo cliente POSTMAN – PUT
URL do web service, invoca a rota “/” sem
passar parâmetros.
Permite testar o método
Aplicativo POSTMAN
Cliente POSTMAN:
(efetuando requisições ao web service)
Aula 10: Web Service - Frameworks Slim e Laravel
Método Requisitado pelo cliente POSTMAN – DELETE
URL do web service, invoca a rota “/” sem
passar parâmetros.
Permite testar o método
Criando Cliente PHP
Aplicação de Exemplo:
(CRUD de Produtos – Tela Principal – Arquivo: “/Client/index.php”)
Cliente PHP permite requisitar os métodos GET, POST, PUT e DELETE para obter, cadastrar, alterar e excluir produtos de uma base de dados
Criando Cliente PHP – GET
Aplicação de Exemplo:
(Arquivo: rotinas.php – ex_doc10.zip)
Aula 10: Web Service - Frameworks Slim e Laravel
Monta o Array de dados que será
enviado ao método GET do web
service.
Utiliza a biblioteca cURL do php, especifica a URL que será invocada (inicia conexão), passa como parâmetro o Array montado em formato json.
Executa a requisição para URL (web service) especificada e recebe os dados de retorno.
Obs.: “cURL” = permite conexão com diversos tipos de servidores usando diversos tipos de protocolos. Fecha / Finaliza conexão com web service.
Criando Web Service – GET
Aplicação de Exemplo:
(Arquivo: rest.php – ex_doc10.zip)
Dado em formato json enviado pelo
cliente quando ele efetuar uma requisição GET passando parâmetros.
Utiliza o método
json_decode() para
decodificar os dados e
convertê-los em array.
Utiliza o pacote PDO para conectar com o banco e executar a query de seleção.
Retorna para o cliente que efetuou a requisição os dados obtidos do banco de dados em formato json.
Executanto Cliente/WS – GET
Aplicação de Exemplo:
(Arquivo: “/Client/index.php” – Selecionar)
Aula 10: Web Service - Frameworks Slim e Laravel
Usuário seleciona a quantidade de registros que deseja visualizar. Esse dado é enviado ao web service via requisição GET.
Invoca o método GET do web service.
Criando Cliente PHP – POST
Aplicação de Exemplo:
(Arquivo: rotinas.php – ex_doc10.zip)
Monta o Array de dados que será
enviado ao método GET do web
service.
Utiliza a biblioteca cURL do php, especifica a URL que
será invocada (inicia
conexão).
Executa a requisição para URL (web service) especificada e recebe os dados de retorno.
Fecha / Finaliza conexão com web service.
Especifica o método (POST)
do web service que será requisitado.
Passa como parâmetro o Array montado emjson.
Criando Web Service – POST
Aplicação de Exemplo:
(Arquivo: rest.php – ex_doc10.zip)
Aula 10: Web Service - Frameworks Slim e Laravel
Dado (nome do produto) enviado pelo
cliente em formato json quando uma
requisição POST é efetuada. A função
json_decode() é utilizada para decodificar os dados e convertê-los em array.
Utiliza o pacote PDO para conectar com o banco e executar a query de inserção.
Retorna para o cliente, em formato json, uma resposta indicando que o produto foi cadastrado com sucesso.
Executanto Cliente/WS – GET
Aplicação de Exemplo:
(Arquivo: “/Client/index.php” – Inserir)
Usuário informa o nome do produto que deseja cadastrar. Esse dado é enviado ao web service via requisição POST.
Invoca o método POST do web service.
Web Service na Prática
Framework Laravel
Web Service
Laravel:
• O framework Laravel possui uma api pronta para
construção de serviços web;
• O arquivo (api.php) que permite definir as rotas
e métodos de requisição do web service fica
localizado no diretório /routes/api.php;
• A partir dele podemos construir rapidamente
serviços web através do Laravel;
Framework Laravel
Exemplo (GET):
(Código básico – principais métodos)
Aula 10: Web Service - Frameworks Slim e Laravel
No código ao lado, temos o método GET para URL “/curso”. Quando um cliente efetua uma requisição GET, uma seleção de dados é efetuada no banco e uma reposta em formato json é produzida (comando echo). Para testar nosso web service Laravel utilizaremos, novamente, o aplicativo POSTMAN como cliente. Observe que, ao utilizar a model curso (curso::all()) para selecionar os curso cadastrados, o
conjunto de objetos retornado é
convertido para array.
Aplicativo POSTMAN
Cliente POSTMAN (GET):
(requisições ao web service Laravel)
Método Requisitado pelo cliente POSTMAN – GET
URL do web service, invoca a rota “/curso”.
Permite testar o
Framework Laravel
Exemplo (POST):
(Código básico – principais métodos)
Aula 10: Web Service - Frameworks Slim e Laravel
No código ao lado, temos o método POST para URL “/curso/cadastrar”.
Quando um cliente efetua uma
requisição POST, os dados enviados em formato json são carregados ($request->all()) para a variável $array. Após isso, esse array é percorrido e os curso enviados pelo cliente são adicionados a base de dados. Para testar o método POST do web service Laravel utilizaremos o aplicativo POSTMAN como cliente. O web service retorna,
em formato json, uma mensagem
indicando a quantidade de registros cadastrados.
Aplicativo POSTMAN
Cliente POSTMAN (POST):
(requisições ao web service Laravel)
Método Requisitado pelo cliente POSTMAN – POST
URL do web service,
invoca a rota
“/curso/cadastrar”.
Permite testar o
método POST.
Array de dados enviado em formatojson.
Framework Laravel
Exemplo (PUT):
(Código básico – principais métodos)
Aula 10: Web Service - Frameworks Slim e Laravel
No código ao lado, temos o método PUT para URL “/curso/alterar”. Quando um cliente efetua uma requisição PUT, os dados enviados em formato json são carregados ($request->all()) para a variável $objDado. Após isso, esse objeto é utilizado para alterar os dados curso especificado. Para testar o método PUT do web service Laravel utilizaremos o aplicativo POSTMAN como cliente. O web service retorna,
em formato json, uma mensagem
indicando a quantidade de registros alterados.
Aplicativo POSTMAN
Cliente POSTMAN (PUT):
(requisições ao web service Laravel)
Método Requisitado pelo cliente POSTMAN – PUT
URL do web service,
invoca a rota
“/curso/alterar”.
Permite testar o
método PUT.
Framework Laravel
Exemplo (DELETE):
(Código básico – principais métodos)
Aula 10: Web Service - Frameworks Slim e Laravel
No código ao lado, temos o método DELETE para URL “/curso/remover”.
Quando um cliente efetua uma
requisição DELETE, os dados enviados
em formato json são carregados
($request->all()) para a variável $objDado. Após isso, esse objeto é
utilizado para remover o curso
especificado. Para testar o método DELETE do web service Laravel utilizaremos o aplicativo POSTMAN como cliente. O web service retorna,
em formato json, uma mensagem
indicando a quantidade de registros removidos.
Aplicativo POSTMAN
Cliente POSTMAN (DELETE):
(requisições ao web service Laravel)
Método Requisitado pelo cliente POSTMAN – DELETE
URL do web service,
invoca a rota
“/curso/remover”.
Permite testar o
método DELETE.
Web Service: Slim e Laravel
Exemplos Utilizados no Documento
http://www.gileduardo.com.br/ifpr/dwii/downloads/dwii_exdoc10.zip
Aula 10: Web Service - Frameworks Slim e Laravel