APIs REST com Apigility

Post on 21-Jan-2018

681 views 2 download

Transcript of APIs REST com Apigility

APIs RESTcom Apigility

Felipe Weckxfelipe@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?