SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Visão de Negócio com Zabbix
Visão de Negócio com ZabbixVisão de Negócio com Zabbix
Visão de Negócio com ZabbixRobert Silva
 
Continious Delivery in practice - POA Meetup
Continious Delivery in practice - POA MeetupContinious Delivery in practice - POA Meetup
Continious Delivery in practice - POA MeetupPamela Canchanya
 
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontaTestando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontatdc-globalcode
 
Entity Framework 7.0 a.k.a Entity Core 1.0
Entity Framework 7.0 a.k.a Entity Core 1.0Entity Framework 7.0 a.k.a Entity Core 1.0
Entity Framework 7.0 a.k.a Entity Core 1.0Caliel Costa
 
MUnit: Encontre os bugs antes que eles encontrem seu app
MUnit: Encontre os bugs antes que eles encontrem seu appMUnit: Encontre os bugs antes que eles encontrem seu app
MUnit: Encontre os bugs antes que eles encontrem seu appRenato de Oliveira
 
Criando uma arquitetura escalável para processamento de arquivos com micro s...
Criando uma arquitetura escalável para processamento de arquivos com micro s...Criando uma arquitetura escalável para processamento de arquivos com micro s...
Criando uma arquitetura escalável para processamento de arquivos com micro s...Emmanuel Neri
 
Monitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application InsightsMonitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application InsightsRenato Groff
 
ASP.NET Web API no Windows Azure
ASP.NET Web API no Windows AzureASP.NET Web API no Windows Azure
ASP.NET Web API no Windows AzureWaldyr Felix
 
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsDevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsJúnior Porfirio
 
São Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom PolicesSão Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom PolicesGuilherme Pereira Silva
 
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...Emmanuel Neri
 
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016Renato Groff
 
Agilizando a administração do Zabbix com API
Agilizando a administração do Zabbix com APIAgilizando a administração do Zabbix com API
Agilizando a administração do Zabbix com APIRobert Silva
 
Campus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NETCampus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NETEduardo Pires
 
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...Renato Groff
 

Mais procurados (20)

Visão de Negócio com Zabbix
Visão de Negócio com ZabbixVisão de Negócio com Zabbix
Visão de Negócio com Zabbix
 
Continious Delivery in practice - POA Meetup
Continious Delivery in practice - POA MeetupContinious Delivery in practice - POA Meetup
Continious Delivery in practice - POA Meetup
 
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontaTestando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
 
Entity Framework 7.0 a.k.a Entity Core 1.0
Entity Framework 7.0 a.k.a Entity Core 1.0Entity Framework 7.0 a.k.a Entity Core 1.0
Entity Framework 7.0 a.k.a Entity Core 1.0
 
MUnit: Encontre os bugs antes que eles encontrem seu app
MUnit: Encontre os bugs antes que eles encontrem seu appMUnit: Encontre os bugs antes que eles encontrem seu app
MUnit: Encontre os bugs antes que eles encontrem seu app
 
Criando uma arquitetura escalável para processamento de arquivos com micro s...
Criando uma arquitetura escalável para processamento de arquivos com micro s...Criando uma arquitetura escalável para processamento de arquivos com micro s...
Criando uma arquitetura escalável para processamento de arquivos com micro s...
 
Monitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application InsightsMonitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application Insights
 
ASP.NET Web API no Windows Azure
ASP.NET Web API no Windows AzureASP.NET Web API no Windows Azure
ASP.NET Web API no Windows Azure
 
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIsDevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs
 
São Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom PolicesSão Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
 
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
 
Clean Architecture com .NET Core
Clean Architecture com .NET CoreClean Architecture com .NET Core
Clean Architecture com .NET Core
 
Mulesoft Meetup Latam Summit Brazil
Mulesoft Meetup Latam Summit BrazilMulesoft Meetup Latam Summit Brazil
Mulesoft Meetup Latam Summit Brazil
 
JEE nas nuvens: uma introdução ao openshift
JEE nas nuvens:  uma introdução ao openshiftJEE nas nuvens:  uma introdução ao openshift
JEE nas nuvens: uma introdução ao openshift
 
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016
 
São Paulo MuleSoft Meetups - DevOps
São Paulo MuleSoft Meetups - DevOpsSão Paulo MuleSoft Meetups - DevOps
São Paulo MuleSoft Meetups - DevOps
 
Jugvale
JugvaleJugvale
Jugvale
 
Agilizando a administração do Zabbix com API
Agilizando a administração do Zabbix com APIAgilizando a administração do Zabbix com API
Agilizando a administração do Zabbix com API
 
Campus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NETCampus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NET
 
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...
 

Semelhante a Construindo APIs com PHP

JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosThiago Soares
 
Aplicações Web com Python e Google App Engine
Aplicações Web com Python e Google App EngineAplicações Web com Python e Google App Engine
Aplicações Web com Python e Google App EngineRodrigo Amaral
 
Monitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed TracingMonitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed TracingRenato Groff
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosRodolfo Fadino Junior
 
CEPUG 2 - Bem-vindo a Framework CodeIgniter
CEPUG 2 - Bem-vindo a Framework CodeIgniterCEPUG 2 - Bem-vindo a Framework CodeIgniter
CEPUG 2 - Bem-vindo a Framework CodeIgniterEric Silva
 
Desenvolvendo API's com asp.net 5
Desenvolvendo API's com asp.net 5Desenvolvendo API's com asp.net 5
Desenvolvendo API's com asp.net 5Nicolas Takashi
 
TDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacTDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacAndre Baltieri
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com AngularElmano Cavalcanti
 
Introdução ao codeigniter
Introdução ao codeigniterIntrodução ao codeigniter
Introdução ao codeigniterPatrick Monteiro
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHPFlávio Lisboa
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPSérgio Vilar
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendThiago Sinésio
 

Semelhante a Construindo APIs com PHP (20)

Um pouco sobre APIs
Um pouco sobre APIsUm pouco sobre APIs
Um pouco sobre APIs
 
Desenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVCDesenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVC
 
JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãos
 
Aplicações Web com Python e Google App Engine
Aplicações Web com Python e Google App EngineAplicações Web com Python e Google App Engine
Aplicações Web com Python e Google App Engine
 
Lab
LabLab
Lab
 
Monitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed TracingMonitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed Tracing
 
Aula 02 introdução ao php
Aula 02   introdução ao phpAula 02   introdução ao php
Aula 02 introdução ao php
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 
CEPUG 2 - Bem-vindo a Framework CodeIgniter
CEPUG 2 - Bem-vindo a Framework CodeIgniterCEPUG 2 - Bem-vindo a Framework CodeIgniter
CEPUG 2 - Bem-vindo a Framework CodeIgniter
 
Desenvolvendo API's com asp.net 5
Desenvolvendo API's com asp.net 5Desenvolvendo API's com asp.net 5
Desenvolvendo API's com asp.net 5
 
Spring boot
Spring bootSpring boot
Spring boot
 
Workshop ASP.NET MVC 5
Workshop ASP.NET MVC 5Workshop ASP.NET MVC 5
Workshop ASP.NET MVC 5
 
TDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacTDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no Mac
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com Angular
 
Introdução ao codeigniter
Introdução ao codeigniterIntrodução ao codeigniter
Introdução ao codeigniter
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHP
 
Angular js 4php
Angular js   4phpAngular js   4php
Angular js 4php
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
 
O Futuro do ASP.NET (vNext)
O Futuro do ASP.NET (vNext)O Futuro do ASP.NET (vNext)
O Futuro do ASP.NET (vNext)
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 

Construindo APIs com PHP

  • 1. Construindo APIs com PHP IV Semana de Tecnologia de Informação FATEC São José do Rio Preto James Miranda
  • 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
  • 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 }
  • 13. 4. Padrão REST (3) ● GET -> Obter informação ● POST -> Inserir informação ● PUT -> Atualizar informação ● DELETE -> Excluir informação
  • 15. 5. SMTC (2) Criando Clientes O que vamos usar: ● PHP SoapClient ● cURL via PHP
  • 16. 6. A Arquitetura de uma API (MVC?) Uma API precisa de uma camada de visualização?
  • 18. 7. SMTC (2) Criando um Servidor O que vamos usar: ● Apache (.htaccess) ● PHP autoload ● Slim Framework
  • 19. 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?
  • 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 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;
  • 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