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?

APIs REST com Apigility

  • 1.
    APIs REST com Apigility FelipeWeckx felipe@weckx.net @weckx
  • 2.
    PHP Conference 20152 Sistemas baseados em API
  • 3.
    PHP Conference 20153 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 20154 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 20155 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 20156 Inteface Apigility HABILITADA SOMENTE EM DESENVOLVIMENTO!
  • 7.
    PHP Conference 20157 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 20158 Serviço DB Connected
  • 9.
    PHP Conference 20159 Serviço DB-Connected
  • 10.
    PHP Conference 201510 Autenticação e Autorização ● HTTP (Basic ou Digest) ● OAuth2 – Todos os fluxos de operação ● ACL por recursos
  • 11.
    PHP Conference 201511 Configuração de Autorização
  • 12.
    PHP Conference 201512 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 201513 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 201514 Configuração de Validação
  • 15.
    PHP Conference 201515 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 201516 Classe de Resource Vazia
  • 17.
    PHP Conference 201517 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 201518 Documentação
  • 19.
    PHP Conference 201519 Documentação – com Swagger
  • 20.
    PHP Conference 201520 Deploy ● Configuração customizada ● Integração Zend Server ● Pré executar Composer ou não
  • 21.
    PHP Conference 201521 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 201522 Perguntas?