Construindo APIs com
PHP
IV Semana de Tecnologia de Informação
FATEC São José do Rio Preto
James Miranda
Quemsoueu?
Agenda
1. O que é uma API afinal?
2. API = Web Service?
3. Protocolo SOAP
4. Arquitetura REST
5. SMTC: Criando Clientes
6. A arquitetura de uma API (MVC?)
7. SMTC: Criando um Servidor
8. Testando APIs
9. Tendências: GraphQL
10. Conclusões e Dicas
11. Bibliografia e Leitura Complementar
1. O que é uma API afinal? (1)
Application
Programming
Interface
An application programming interface
(API) is a set of subroutine definitions,
protocols, and tools for building software
and applications. A good API makes it
easier to develop a program by providing
all the building blocks, which are then put
together by the programmer.
Fonte:
https://en.wikipedia.org/wiki/Application_
programming_interface
1. O que é uma API afinal ? (2)
Pensando no contexto Web
A diferença básica está no formato da resposta
1. O que é uma API afinal? (3)
Existem APIs para basicamente qualquer coisa:
● Serviços meteorológicos;
● Google Maps;
● Spotify;
● PayPal
● JSON-Porn
2. API = Web Service?
APIs não estão limitadas ao contexto Web.
● Linux Kernel API
● Java API
● ...
O que são Web Services então?
Solução para comunicação entre aplicações Web
diferentes. Web service é um tipo de API
Foco desse mini-curso
3. Protocolo SOAP (1)
● Simple Object Access Protocol
● Recomendação W3C;
● Padão baseado em XML;
● Stateless
● Funciona em conjunto com UDDI
e WSDL
3. Protocolo SOAP (2)
3. Protocolo SOAP (3)
4. Padrão REST (1)
● Representation State Transfer;
● Não é um protocolo em si, mas funciona sobre
o protocolo HTTP;
○ GET, POST, PUT, DELETE
● É um padrão arquitetural;
● Orientado a recursos;
● Stateless;
{ REST }
4. Padrão REST (2)
4. Padrão REST (3)
● GET -> Obter informação
● POST -> Inserir informação
● PUT -> Atualizar informação
● DELETE -> Excluir informação
5. SMTC (1)
Criando
Clientes
5. SMTC (2)
Criando
Clientes
O que vamos usar:
● PHP SoapClient
● cURL via PHP
6. A Arquitetura de uma API (MVC?)
Uma API precisa de uma camada de visualização?
7. SMTC (1)
Criando
um
Servidor
7. SMTC (2)
Criando
um
Servidor
O que vamos usar:
● Apache (.htaccess)
● PHP autoload
● Slim Framework
8. Testando APIs
Algumas métricas:
● Usabilidade: É fácil de configurar?
● Funcionalidade: Funciona conforme a documentação?
● Confiança: Funciona sempre?
● Segurança: As informações passadas estão seguras?
9. Tendências: GraphQL
● Especificação de uma linguagem de buscas para APIs;
● Qual o problema com o REST?
● GraphQL será adotado?
● Implementação em PHP:
○ https://github.com/webonyx/graphql-php
10. Conclusões e Dicas
● A necessidade de APIs será cada vez maior então é bom estar preparado;
● Analise suas necessidades para decidir entre SOAP ou REST (GraphQL?);
● Lembre-se de testar sua API;
● Lembre-se de Documentar sua API;
11. Bibliografia e
Leitura
complementar
1. Sturgeon, Phil. “Desenvolvendo
APIs Sem Arrependimento”.
LeanPub, 2014.
2. Gazarov, Petr. “What is an API? In
English, please”. FreeCodeCamp,
2016.
3. Dall´Oglio, Pablo. “PHP -
Programando com Orientação a
Objetos”. Novatec, 2015.
Por hoje é só!
jameswpm@gmail.com
github.com/jameswpm
Linkedin: James Miranda

Construindo ap is usando php

  • 1.
    Construindo APIs com PHP IVSemana de Tecnologia de Informação FATEC São José do Rio Preto James Miranda
  • 2.
  • 3.
    Agenda 1. O queé uma API afinal? 2. API = Web Service? 3. Protocolo SOAP 4. Arquitetura REST 5. SMTC: Criando Clientes 6. A arquitetura de uma API (MVC?) 7. SMTC: Criando um Servidor 8. Testando APIs 9. Tendências: GraphQL 10. Conclusões e Dicas 11. Bibliografia e Leitura Complementar
  • 4.
    1. O queé uma API afinal? (1) Application Programming Interface An application programming interface (API) is a set of subroutine definitions, protocols, and tools for building software and applications. A good API makes it easier to develop a program by providing all the building blocks, which are then put together by the programmer. Fonte: https://en.wikipedia.org/wiki/Application_ programming_interface
  • 5.
    1. O queé uma API afinal ? (2) Pensando no contexto Web A diferença básica está no formato da resposta
  • 6.
    1. O queé uma API afinal? (3) Existem APIs para basicamente qualquer coisa: ● Serviços meteorológicos; ● Google Maps; ● Spotify; ● PayPal ● JSON-Porn
  • 7.
    2. API =Web Service? APIs não estão limitadas ao contexto Web. ● Linux Kernel API ● Java API ● ... O que são Web Services então? Solução para comunicação entre aplicações Web diferentes. Web service é um tipo de API Foco desse mini-curso
  • 8.
    3. Protocolo SOAP(1) ● Simple Object Access Protocol ● Recomendação W3C; ● Padão baseado em XML; ● Stateless ● Funciona em conjunto com UDDI e WSDL
  • 9.
  • 10.
  • 11.
    4. Padrão REST(1) ● Representation State Transfer; ● Não é um protocolo em si, mas funciona sobre o protocolo HTTP; ○ GET, POST, PUT, DELETE ● É um padrão arquitetural; ● Orientado a recursos; ● Stateless; { REST }
  • 12.
  • 13.
    4. Padrão REST(3) ● GET -> Obter informação ● POST -> Inserir informação ● PUT -> Atualizar informação ● DELETE -> Excluir informação
  • 14.
  • 15.
    5. SMTC (2) Criando Clientes Oque vamos usar: ● PHP SoapClient ● cURL via PHP
  • 16.
    6. A Arquiteturade uma API (MVC?) Uma API precisa de uma camada de visualização?
  • 17.
  • 18.
    7. SMTC (2) Criando um Servidor Oque vamos usar: ● Apache (.htaccess) ● PHP autoload ● Slim Framework
  • 19.
    8. Testando APIs Algumasmétricas: ● Usabilidade: É fácil de configurar? ● Funcionalidade: Funciona conforme a documentação? ● Confiança: Funciona sempre? ● Segurança: As informações passadas estão seguras?
  • 20.
    9. Tendências: GraphQL ●Especificação de uma linguagem de buscas para APIs; ● Qual o problema com o REST? ● GraphQL será adotado? ● Implementação em PHP: ○ https://github.com/webonyx/graphql-php
  • 21.
    10. Conclusões eDicas ● A necessidade de APIs será cada vez maior então é bom estar preparado; ● Analise suas necessidades para decidir entre SOAP ou REST (GraphQL?); ● Lembre-se de testar sua API; ● Lembre-se de Documentar sua API;
  • 22.
    11. Bibliografia e Leitura complementar 1.Sturgeon, Phil. “Desenvolvendo APIs Sem Arrependimento”. LeanPub, 2014. 2. Gazarov, Petr. “What is an API? In English, please”. FreeCodeCamp, 2016. 3. Dall´Oglio, Pablo. “PHP - Programando com Orientação a Objetos”. Novatec, 2015.
  • 23.
    Por hoje ésó! jameswpm@gmail.com github.com/jameswpm Linkedin: James Miranda