APIs REST com Apigility

22
APIs REST com Apigility Felipe Weckx [email protected] @weckx

Transcript of APIs REST com Apigility

Page 1: APIs REST com Apigility

APIs RESTcom Apigility

Felipe [email protected]

@weckx

Page 2: APIs REST com Apigility

PHP Conference 2015 2

Sistemas baseados em API

Page 3: APIs REST com Apigility

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

Page 4: APIs REST com Apigility

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

Page 5: APIs REST com Apigility

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

Page 6: APIs REST com Apigility

PHP Conference 2015 6

Inteface Apigility

HABILITADA SOMENTE EM DESENVOLVIMENTO!

Page 7: APIs REST com Apigility

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...

Page 8: APIs REST com Apigility

PHP Conference 2015 8

Serviço DB Connected

Page 9: APIs REST com Apigility

PHP Conference 2015 9

Serviço DB-Connected

Page 10: APIs REST com Apigility

PHP Conference 2015 10

Autenticação e Autorização

● HTTP (Basic ou Digest)● OAuth2

– Todos os fluxos de operação

● ACL por recursos

Page 11: APIs REST com Apigility

PHP Conference 2015 11

Configuração de Autorização

Page 12: APIs REST com Apigility

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

Page 13: APIs REST com Apigility

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

Page 14: APIs REST com Apigility

PHP Conference 2015 14

Configuração de Validação

Page 15: APIs REST com Apigility

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

Page 16: APIs REST com Apigility

PHP Conference 2015 16

Classe de Resource Vazia

Page 17: APIs REST com Apigility

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

Page 18: APIs REST com Apigility

PHP Conference 2015 18

Documentação

Page 19: APIs REST com Apigility

PHP Conference 2015 19

Documentação – com Swagger

Page 20: APIs REST com Apigility

PHP Conference 2015 20

Deploy

● Configuração customizada

● Integração Zend Server

● Pré executar Composer ou não

Page 21: APIs REST com Apigility

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!

Page 22: APIs REST com Apigility

PHP Conference 2015 22

Perguntas?