SlideShare a Scribd company logo
1 of 22
Download to read offline
APIs REST
com Apigility
Felipe Weckx
felipe@weckx.net
@weckx
PHP Conference 2015 2
Sistemas baseados em API
PHP Conference 2015 3
O que é Apigility?
● Plataforma para desenvolvimento de APIs
– REST
– RPC
● Construído com ZF2
● Fornece toda a estrutura básica para API
● Modelo de trabalho
● Documentação automática
PHP Conference 2015 4
O que NÃO é o Apigility
● Não é framework
● Não precisa usar ZF
● Não é uma aplicação web
● Não é um middleware
PHP Conference 2015 5
Vantagens
● Interface gráfica de configuração
– Porém flexível!
● Autenticação automática
● Validação de entrada
● Versionamento
● Gerenciamento de erros
● Documentação
PHP Conference 2015 6
Inteface Apigility
HABILITADA SOMENTE EM DESENVOLVIMENTO!
PHP Conference 2015 7
APIs e Serviços
● Separação lógica
● Serviços DB-Connected
– Integração automática com uma tabela da base de
dados
– CRUD via API automático!
– Suporte a principais bases SQL: MySQL,
PostgreSQL, DB2, SQL Server...
PHP Conference 2015 8
Serviço DB Connected
PHP Conference 2015 9
Serviço DB-Connected
PHP Conference 2015 10
Autenticação e Autorização
● HTTP (Basic ou Digest)
● OAuth2
– Todos os fluxos de operação
● ACL por recursos
PHP Conference 2015 11
Configuração de Autorização
PHP Conference 2015 12
Negociação de Conteúdo
● HAL
– Hypertext Application Language
– Facilita listagens, paginação e links
– Exposição da API
● Versionamento
– URL - /v1/palestras
– Media Type – application/vnd.api.v1+json
PHP Conference 2015 13
Validação
● Configuração de validação para todos os
campos
● Resposta automática com mensagens de erro
● Validators ZF2 prontos
● Novos validators fáceis de integrar
PHP Conference 2015 14
Configuração de Validação
PHP Conference 2015 15
E o código?
● Arquivos gerados
para cada resource
● Geração de classes
de model
● Flexível, pode ser
substituido por
chamadas ao seu
código legado
PHP Conference 2015 16
Classe de Resource Vazia
PHP Conference 2015 17
Documentação
● Geração automática da documentação
● Preenchimento na interface
● Acesso via /apigility/documentation
● Detalhamento de campos, métodos e códigos
de resposta
PHP Conference 2015 18
Documentação
PHP Conference 2015 19
Documentação – com Swagger
PHP Conference 2015 20
Deploy
● Configuração
customizada
● Integração Zend
Server
● Pré executar
Composer ou não
PHP Conference 2015 21
E as aplicações existentes?
● Utilizar em conjunto com Apigility
● Chamar classes da aplicação dentro dos
resources
● Se utilizar Composer fica mais fácil!
PHP Conference 2015 22
Perguntas?

More Related Content

What's hot

API management: um aliado para construção de APIs
API management: um aliado para construção de APIsAPI management: um aliado para construção de APIs
API management: um aliado para construção de APIsRafael de Paula Souza
 
WSO2 - Portfólio de Produtos, Soluções e Suportes
WSO2 - Portfólio de Produtos, Soluções e SuportesWSO2 - Portfólio de Produtos, Soluções e Suportes
WSO2 - Portfólio de Produtos, Soluções e SuportesEdgar Silva
 
WSO2 Novo Modelo de Subscrições e Produtos 2017
WSO2 Novo Modelo de Subscrições e Produtos 2017WSO2 Novo Modelo de Subscrições e Produtos 2017
WSO2 Novo Modelo de Subscrições e Produtos 2017Edgar Silva
 
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
 
Uaijug ADF - spring boot - microservice - Introdução
Uaijug ADF - spring boot - microservice - IntroduçãoUaijug ADF - spring boot - microservice - Introdução
Uaijug ADF - spring boot - microservice - IntroduçãoRogerio Fontes
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFEmmanuel Neri
 
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
 
Tdc2019 intro event-sourcing_kafka
Tdc2019   intro event-sourcing_kafkaTdc2019   intro event-sourcing_kafka
Tdc2019 intro event-sourcing_kafkaMarcelo Ohashi
 
Novidades do ASP.NET Core 2.1 - TDC 2018 - São Paulo
Novidades do ASP.NET Core 2.1 - TDC 2018 - São PauloNovidades do ASP.NET Core 2.1 - TDC 2018 - São Paulo
Novidades do ASP.NET Core 2.1 - TDC 2018 - São PauloRenato Groff
 
TDC2018SP | Trilha .Net - Novidades do ASP.NET Core 2.1
TDC2018SP | Trilha .Net - Novidades do ASP.NET Core 2.1TDC2018SP | Trilha .Net - Novidades do ASP.NET Core 2.1
TDC2018SP | Trilha .Net - Novidades do ASP.NET Core 2.1tdc-globalcode
 
Construindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutosConstruindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutosRafael Chaves
 
Xamarin em 7 minutos
Xamarin em 7 minutosXamarin em 7 minutos
Xamarin em 7 minutosakamud
 
Workshop react + adonis.js
Workshop react + adonis.jsWorkshop react + adonis.js
Workshop react + adonis.jsDenis Velrino
 
Como garantir a qualidade de sua API?
Como garantir a qualidade de sua API?Como garantir a qualidade de sua API?
Como garantir a qualidade de sua API?Claudenir Freitas
 
Python em Ambientes Distribuídos - Arquitetura Moderna
Python em Ambientes Distribuídos - Arquitetura ModernaPython em Ambientes Distribuídos - Arquitetura Moderna
Python em Ambientes Distribuídos - Arquitetura ModernaRyan Padilha
 
Pwa e o futuro do frontend
Pwa e o futuro do frontendPwa e o futuro do frontend
Pwa e o futuro do frontendRaphael Moraes
 
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...tdc-globalcode
 
Transformação Digital de Forma Pragmatica WSO2
Transformação Digital de Forma Pragmatica WSO2Transformação Digital de Forma Pragmatica WSO2
Transformação Digital de Forma Pragmatica WSO2Edgar Silva
 

What's hot (20)

API management: um aliado para construção de APIs
API management: um aliado para construção de APIsAPI management: um aliado para construção de APIs
API management: um aliado para construção de APIs
 
WSO2 - Portfólio de Produtos, Soluções e Suportes
WSO2 - Portfólio de Produtos, Soluções e SuportesWSO2 - Portfólio de Produtos, Soluções e Suportes
WSO2 - Portfólio de Produtos, Soluções e Suportes
 
WSO2 Novo Modelo de Subscrições e Produtos 2017
WSO2 Novo Modelo de Subscrições e Produtos 2017WSO2 Novo Modelo de Subscrições e Produtos 2017
WSO2 Novo Modelo de Subscrições e Produtos 2017
 
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
 
Uaijug ADF - spring boot - microservice - Introdução
Uaijug ADF - spring boot - microservice - IntroduçãoUaijug ADF - spring boot - microservice - Introdução
Uaijug ADF - spring boot - microservice - Introdução
 
São Paulo MuleSoft Meetups - DevOps
São Paulo MuleSoft Meetups - DevOpsSão Paulo MuleSoft Meetups - DevOps
São Paulo MuleSoft Meetups - DevOps
 
Mulesoft Meetup Latam Summit Brazil
Mulesoft Meetup Latam Summit BrazilMulesoft Meetup Latam Summit Brazil
Mulesoft Meetup Latam Summit Brazil
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSF
 
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
 
Tdc2019 intro event-sourcing_kafka
Tdc2019   intro event-sourcing_kafkaTdc2019   intro event-sourcing_kafka
Tdc2019 intro event-sourcing_kafka
 
Novidades do ASP.NET Core 2.1 - TDC 2018 - São Paulo
Novidades do ASP.NET Core 2.1 - TDC 2018 - São PauloNovidades do ASP.NET Core 2.1 - TDC 2018 - São Paulo
Novidades do ASP.NET Core 2.1 - TDC 2018 - São Paulo
 
TDC2018SP | Trilha .Net - Novidades do ASP.NET Core 2.1
TDC2018SP | Trilha .Net - Novidades do ASP.NET Core 2.1TDC2018SP | Trilha .Net - Novidades do ASP.NET Core 2.1
TDC2018SP | Trilha .Net - Novidades do ASP.NET Core 2.1
 
Construindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutosConstruindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutos
 
Xamarin em 7 minutos
Xamarin em 7 minutosXamarin em 7 minutos
Xamarin em 7 minutos
 
Workshop react + adonis.js
Workshop react + adonis.jsWorkshop react + adonis.js
Workshop react + adonis.js
 
Como garantir a qualidade de sua API?
Como garantir a qualidade de sua API?Como garantir a qualidade de sua API?
Como garantir a qualidade de sua API?
 
Python em Ambientes Distribuídos - Arquitetura Moderna
Python em Ambientes Distribuídos - Arquitetura ModernaPython em Ambientes Distribuídos - Arquitetura Moderna
Python em Ambientes Distribuídos - Arquitetura Moderna
 
Pwa e o futuro do frontend
Pwa e o futuro do frontendPwa e o futuro do frontend
Pwa e o futuro do frontend
 
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
 
Transformação Digital de Forma Pragmatica WSO2
Transformação Digital de Forma Pragmatica WSO2Transformação Digital de Forma Pragmatica WSO2
Transformação Digital de Forma Pragmatica WSO2
 

Similar to APIs REST com Apigility

DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...
DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...
DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...iMasters
 
Repensando o ESB: sua arquitetura SOA, usando APIs
Repensando o ESB: sua arquitetura SOA, usando APIsRepensando o ESB: sua arquitetura SOA, usando APIs
Repensando o ESB: sua arquitetura SOA, usando APIsFábio Rosato
 
FISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFlávio Lisboa
 
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
 
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
 
REST: Faça o Serviço Direito
REST: Faça o Serviço DireitoREST: Faça o Serviço Direito
REST: Faça o Serviço DireitoAlexandre Gaigalas
 
Desenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDesenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDomingos Teruel
 
AwReporting Tool
AwReporting ToolAwReporting Tool
AwReporting Toolmarcwan
 
Deck apix 2017 design & security - case cielo lio
Deck apix 2017   design & security - case cielo lioDeck apix 2017   design & security - case cielo lio
Deck apix 2017 design & security - case cielo lioLuis Moraes Junior
 
PHP e componentes reutilizáveis
PHP e componentes reutilizáveisPHP e componentes reutilizáveis
PHP e componentes reutilizáveiselliando dias
 
Backend para dispositivos moveis
Backend para dispositivos moveisBackend para dispositivos moveis
Backend para dispositivos moveisThales Lima
 
Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013George Mendonça
 
4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdfRubenManhia
 
Restful APIs com Spring 3
Restful APIs com Spring 3Restful APIs com Spring 3
Restful APIs com Spring 3Alex Miranda
 
ASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance TipsASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance TipsAndre Baltieri
 
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .net
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .netTDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .net
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .netFabian Gehrke
 
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?tdc-globalcode
 
The twelve factor app - Princípios e boas práticas aplicados no mundo real
The twelve factor app - Princípios e boas práticas aplicados no mundo realThe twelve factor app - Princípios e boas práticas aplicados no mundo real
The twelve factor app - Princípios e boas práticas aplicados no mundo realJosé Filipe Lyra
 

Similar to APIs REST com Apigility (20)

Api platform
Api platformApi platform
Api platform
 
DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...
DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...
DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...
 
Repensando o ESB: sua arquitetura SOA, usando APIs
Repensando o ESB: sua arquitetura SOA, usando APIsRepensando o ESB: sua arquitetura SOA, usando APIs
Repensando o ESB: sua arquitetura SOA, usando APIs
 
FISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHP
 
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
 
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
 
REST: Faça o Serviço Direito
REST: Faça o Serviço DireitoREST: Faça o Serviço Direito
REST: Faça o Serviço Direito
 
Desenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDesenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend Framework
 
AwReporting Tool
AwReporting ToolAwReporting Tool
AwReporting Tool
 
Deck apix 2017 design & security - case cielo lio
Deck apix 2017   design & security - case cielo lioDeck apix 2017   design & security - case cielo lio
Deck apix 2017 design & security - case cielo lio
 
PHP e componentes reutilizáveis
PHP e componentes reutilizáveisPHP e componentes reutilizáveis
PHP e componentes reutilizáveis
 
Backend para dispositivos moveis
Backend para dispositivos moveisBackend para dispositivos moveis
Backend para dispositivos moveis
 
Introducao ao PHP @edgarsandi
Introducao ao PHP @edgarsandiIntroducao ao PHP @edgarsandi
Introducao ao PHP @edgarsandi
 
Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013
 
4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf
 
Restful APIs com Spring 3
Restful APIs com Spring 3Restful APIs com Spring 3
Restful APIs com Spring 3
 
ASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance TipsASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance Tips
 
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .net
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .netTDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .net
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .net
 
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
 
The twelve factor app - Princípios e boas práticas aplicados no mundo real
The twelve factor app - Princípios e boas práticas aplicados no mundo realThe twelve factor app - Princípios e boas práticas aplicados no mundo real
The twelve factor app - Princípios e boas práticas aplicados no mundo real
 

APIs REST com Apigility

  • 1. APIs REST com Apigility Felipe Weckx felipe@weckx.net @weckx
  • 2. PHP Conference 2015 2 Sistemas baseados em API
  • 3. PHP Conference 2015 3 O que é Apigility? ● Plataforma para desenvolvimento de APIs – REST – RPC ● Construído com ZF2 ● Fornece toda a estrutura básica para API ● Modelo de trabalho ● Documentação automática
  • 4. PHP Conference 2015 4 O que NÃO é o Apigility ● Não é framework ● Não precisa usar ZF ● Não é uma aplicação web ● Não é um middleware
  • 5. PHP Conference 2015 5 Vantagens ● Interface gráfica de configuração – Porém flexível! ● Autenticação automática ● Validação de entrada ● Versionamento ● Gerenciamento de erros ● Documentação
  • 6. PHP Conference 2015 6 Inteface Apigility HABILITADA SOMENTE EM DESENVOLVIMENTO!
  • 7. PHP Conference 2015 7 APIs e Serviços ● Separação lógica ● Serviços DB-Connected – Integração automática com uma tabela da base de dados – CRUD via API automático! – Suporte a principais bases SQL: MySQL, PostgreSQL, DB2, SQL Server...
  • 8. PHP Conference 2015 8 Serviço DB Connected
  • 9. PHP Conference 2015 9 Serviço DB-Connected
  • 10. PHP Conference 2015 10 Autenticação e Autorização ● HTTP (Basic ou Digest) ● OAuth2 – Todos os fluxos de operação ● ACL por recursos
  • 11. PHP Conference 2015 11 Configuração de Autorização
  • 12. PHP Conference 2015 12 Negociação de Conteúdo ● HAL – Hypertext Application Language – Facilita listagens, paginação e links – Exposição da API ● Versionamento – URL - /v1/palestras – Media Type – application/vnd.api.v1+json
  • 13. PHP Conference 2015 13 Validação ● Configuração de validação para todos os campos ● Resposta automática com mensagens de erro ● Validators ZF2 prontos ● Novos validators fáceis de integrar
  • 14. PHP Conference 2015 14 Configuração de Validação
  • 15. PHP Conference 2015 15 E o código? ● Arquivos gerados para cada resource ● Geração de classes de model ● Flexível, pode ser substituido por chamadas ao seu código legado
  • 16. PHP Conference 2015 16 Classe de Resource Vazia
  • 17. PHP Conference 2015 17 Documentação ● Geração automática da documentação ● Preenchimento na interface ● Acesso via /apigility/documentation ● Detalhamento de campos, métodos e códigos de resposta
  • 18. PHP Conference 2015 18 Documentação
  • 19. PHP Conference 2015 19 Documentação – com Swagger
  • 20. PHP Conference 2015 20 Deploy ● Configuração customizada ● Integração Zend Server ● Pré executar Composer ou não
  • 21. PHP Conference 2015 21 E as aplicações existentes? ● Utilizar em conjunto com Apigility ● Chamar classes da aplicação dentro dos resources ● Se utilizar Composer fica mais fácil!
  • 22. PHP Conference 2015 22 Perguntas?