php experience 2016 - [workshop] apis bem desenhadas como base para integrações

126
APIs bem desenhadas como base para integrações

Upload: imasters

Post on 12-Feb-2017

366 views

Category:

Education


3 download

TRANSCRIPT

Page 1: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

APIs bem desenhadas como base para integrações

Page 2: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

José VahlGerente de Tecnologia

Ciclista, fotógrafo, cervejeiro, gerente de

tecnologia e APIs addicted

[email protected]@josevahl

Petterson AndradeArquiteto de Software

Palestrante, nerd, arquiteto de software, cruzeirense e confia na

tecnologia

[email protected]@pett4j

Page 3: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Applications Services Enabling Digital Transformation

Quick Facts

Foundedin 2007

Campinas,São Paulo,

Rio de Janeiro and

US Incorporated

Strong SOA Background(Gartner MQ SOA Gov, 2009)

+● Services & API Strategy● Architectural Solution● API Platform

Page 4: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Agenda

Integração e evolução

Cenários de APIs

API First

Design de APIs

Mão na massa!

+

Page 5: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

O Estado Corrente das

Coisas

SOAP/XMLWS-*

Arquitetura de Serviços!Legado ++

Integração! Foco Total

Ênfase no ESB

Page 6: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+

Arquitetura tradicional

ERPBillingCRM

ESB(serviços)

Processos

Client

Aplicações

Qu

alidad

e e Seguran

ça

Go

vernan

ça SOA

Page 7: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+

Novos elementos, novas abordagens...

Cloud

Mobilidade

Social

Analytics

Internet of Things

Plataforma & EcossistemaMicroservice

Connector-less

Page 8: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Custom Applications

CustomBillingERPAplicaçõesOn Premise

Cloud

Page 9: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

BillingCheckoutERP

ESB(serviços)

Processos

Cliente

Aplicações

API Gateway

Qu

alidad

e e Seguran

ça

Go

vernan

ça SOA

Cloud

Page 10: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Mobilidade

Custom Applications

CustomBillingERPAplicaçõesOn Premise

Preocupações arquiteturais:● Segurança● Escalabilidade● Limitações de banda

Page 11: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Social

Aplicações

Billing

CR

ME

RP

Page 12: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Social

Aplicações

Billing

CR

ME

RP Pr

oxy

Laye

r

Monitoração

Unificação da gestão de

chaves

Page 13: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Internet of Things

Page 14: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Microservice #1 Microservice #2 Microservice #3 Microservice #4

Banco Relacional Banco Orientado a Documentos

Key/Store Data Base

Graph Database

HTTP HTTP HTTP HTTP

Microservice

Page 15: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Microservice

Microservice #1 Microservice #2 Microservice #3 Microservice #4

Banco Relacional Banco Orientado a Documentos

Key/Store Data Base

Graph Database

HTTP HTTP HTTP HTTP

API Gateway

HTTP HTTP HTTP HTTP

Service aggregationRate Limiting Monitoring & AlertsAuthentication Models Policy EnforcementException handlingAnalytics on API Consumption

Page 16: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Connector-less

Adapter Adapter

Human Capital Supply Chain

HTTP HTTP HTTP HTTP

ERP CRM

Adapter

HTTP

Enterprise Resource planning

HTTP

Enterprise Performance

Page 17: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Connector-less

Adapter

Human Capital Supply Chain

HTTP HTTP HTTP HTTP

API Gateway

Service aggregationRate Limiting Monitoring & AlertsAuthentication Models Policy EnforcementException handlingAnalytics on API Consumption

ERP CRM

Adapter

HTTP

Enterprise Resource planning

HTTP

Enterprise Performance

HTTP

Adapter

Page 18: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Uma avalanche de APIs

Arquitetura de Serviços!Legado ++

Ênfase no ESB

+

Formas de integração

Page 19: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Backend

APIsThe Digital Glue

Integrações com Aplicações SaaS

Aplicações Móveis

Internet of Things

Inovação

Ecossistema de Parceiros

Digitais

Page 20: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+

SSOCIAL

MMOBILE

AANALYTICS

CCLOUD

IoTINTERNET OF THINGS

Transformações Digitais

Page 21: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Experiências digitais transformadas

Arquitetura de Serviços!Legado ++

+

Cenários de uso das APIs

Inovação abertaPlataformas e Ecossistemas

Clientes e Parceiros Múltiplos dispositivos

Page 22: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+

Plataformas e Ecossistemas

Planejamento de viagens”“

Page 23: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+

Clientes e Parceiros

Aproximação de vendedores e compradores“ ”

Page 24: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+

Clientes e Parceiros

Aproximação de vendedores e compradores“ ”

Page 25: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+

Múltiplos Dispositivos

Missão: Dar às pessoas acesso a todas as músicas que elas quiserem o tempo todo, de forma simples e legal.

Page 26: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+

Inovação Aberta

Aceleradora de Startups focada em Apps para os 28M de usuários Nike

Page 27: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
Page 28: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+

Multi-sided Business Models

Platform Power

Conceitos em comum

Page 29: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+

The Magnet:- Design of Incentives- Pricing Models- Reputation Systems

The Matchmaker:- Rich Data Collection- Data-oriented Match- Curation (the best and the rest)

Gravity

Flow

ConnectionThe Toolbox:- Simple- Open- Agile

Page 30: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+ API First

Page 31: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

78%

Page 32: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+

Compromisso com APIs

“Anyone who doesn’t do this will be fired. Thank you; have a nice day!”- Jeff Bezos

Page 33: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+

Foco na informação ou na integração?

● Serviços projetados para uso interno

● Código Legado● SOAP Services● Tabelas de Banco

API(design problemático)

Foco na informação

Foco na integração

info:

vers

ion: 0

.0.1

titl

e: My

API História para contar

Page 34: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+

Design despriorizado + Visão de curto prazo

Com “APIs”

Page 35: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+ Design de APIs inf

o:

vers

ion: 0

.0.1

titl

e: My

API

Page 36: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
Page 37: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

1966

Clint EastwoodLee Van CleefEli Wallach

Sergio Leone(Por um punhado de dólares e Por uns dólares a mais)

Page 38: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

RESTSOAP vs.

JSONXML vs.

Valor RESTful Documentação StatusCodes

Otimização Hypermedia Segurança Instrum/zação

As primeiras decisões…

Page 39: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

JSONREST +

And the winners are...

Page 40: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Muito confusa?Valor

Não “pegou”

http://www.infoq.com/news/2015/11/dropbox-deprecates-apis

Page 41: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

778 Pokémon

248 Habilidades

?Valor

Page 42: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

778 Pokémon

248 Habilidades

?+55k calls / dia

Valor

Page 43: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

“Você pode até passar batom num porco,mas ele continuará sendo um porco!”

Foco no consumidor!

Page 44: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

RESTful

Page 45: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

RESTRepresentational State TransferEstilo arquitetural criado por Roy Fielding

RESTful Design que respeita os conceitos REST

Page 46: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Coleção/pedidos

Resources

Elemento/pedidos/{id}

Page 47: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

/getAccount/getAllAccounts/createDirectory/updateGroupName/findClientById

RPC?

Page 48: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

URI: https://api.mycompany.com/name-of-api/resource

HTTP ou HTTPS

Seu domínio Nome da API(opcional)

Recursos eParâmetros

RESTful

Page 49: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

GET POST PUT DELETE

Page 50: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Resource POST(create)

GET(read)

PUT(update, create)

DELETE(delete)

/pedidos Cria novo pedido

Lista pedidos -- Apaga todos os pedidos

/pedidos/3747 -- Mostra pedido 3747

Atualiza pedido 3747, se não existir, cria

Apaga pedido 3747

RESTful

Page 51: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Método de Consulta(Cachable, Safe, Idempotente)

GET /vendas/pedidos

GET /checklist/item/4

GET

POST

PUT

DELETE

PATCH

OPTIONS

HEAD

Page 52: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Método para “Criação”(Unsafe, Não-Idempotente)

POST /clientes/98W33GJ201/enderecos{ "endereco": "Av. Brigadeiro Faria Lima", "numero": "3800", "complemento": "18o. Andar", "bairro": "Itaim Bibi", "cidade": "São Paulo", "estado": "SP", "cep": "04538-132"}

GET

POST

PUT

DELETE

PATCH

OPTIONS

HEAD

Page 53: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

GET

POST

PUT

DELETE

PATCH

OPTIONS

HEAD

Método para “Atualização”(Unsafe, Idempotente)

PUT /clientes/98W33GJ201/enderecos/1{ "endereco": "Av. Brigadeiro Faria Lima", "numero": "3800", "complemento": "18o. Andar", "bairro": "Itaim Bibi", "cidade": "São Paulo", "estado": "SP", "cep": "04538-132"}

Page 54: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

GET

POST

PUT

DELETE

PATCH

OPTIONS

HEAD

Método para Remoção(Unsafe, Idempotente)

DELETE /pedidos/98W33GJ201

DELETE /users/98S7726QV1/photos

Page 55: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

GET

POST

PUT

DELETE

PATCH

OPTIONS

HEAD

Método para Atualização parcial(Unsafe, Não-Idempotente)

PATCH /users/98W33GJ201{ "email": "[email protected]"}

PATCH /pedidos/39D0091B86{ "status": "Cancelado"}

Page 56: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

GET

POST

PUT

DELETE

PATCH

OPTIONS

HEAD

OPTIONSQuais métodos são permitidos?

OPTIONS /clientesAllow: HEAD,GET,POST,OPTIONS

HEADQuero ver apenas o Header

HEAD /clientesDate: …Content-Type: application/jsonContent-Length: 12345

Page 57: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
Page 58: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Documentação

Page 59: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

DocumentaçãoTHINGS CHANGE!

v1

v2v3

v4

Page 60: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Documentação

Versão

URI: https://api.mycompany.com/name-of-api/v2/resource

HTTP ou HTTPS

Seu domínio Nome da API(opcional)

Recursos eParâmetros

Outras alternativas:• Twilio: /2010-04-01/Accounts/ • Salesforce.com: /services/data/v20.0/limits

VersionamentoNunca quebre o cliente!!

Page 61: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

UX

(Developer Experience)

DX

Page 62: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

API Portal

Developers

https://developers.[you].com

Powered by

❖ Introdução, tutoriais e exemplos de códigos

❖ Self-service Signup

❖ Documentação interativa (API Browsing)

❖ Forum, Blog & Dev support

❖ Testes facilitados (Sandbox)

❖ Dev. Dashboard

API Developers PortalDocumentação

Page 63: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Documentação Interativa

desenvolvedores.cnova.com

Page 64: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Getting Started

www.twilio.com/api

Page 65: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Exemplos de código na linguagem

do developer

sendgrid.com/docs

Page 66: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Sign-up e Tokens de acesso automáticos

stripe.com/docs

Page 67: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

REST Console ou Sandbox / Playgroung

dev.transparencia.org.br

Page 68: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
Page 69: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Hackathon & Open Innovation

Page 70: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Status Codes

200

400

500

Resultado OK

Erro no Cliente

Erro no Servidor

201 Criado

202 Aceito

401 Não Autorizado405 Operação não permitida413 Request muito grande429 Muitas requisições

503 Servidor não disponível

204 Sem Conteúdo

Page 71: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

STATUS OK 200

Page 72: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

200

400

500

Status & Error Codes

200 OK

GET /candidatos?estado=SP&partido=PP

200 OK[ { "id": "1532962", "apelido": "PAULO MALUF", "nome": "PAULO SALIM MALUF", "numero": "1111", "cargo": "Deputado Federal", "estado": "SP", "partido": "PP", "reeleicao": true }]

Page 73: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

200

400

500

Status & Error Codes

201 Created

POST /items/1234/bids { "amount" : 602.99 }

201 CreatedLocation: /items/1234/bids/100001 { "amount" : 602.99, "current_bid" : 510, "winning" : true}

Page 74: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

200

400

500

Status & Error Codes

400 Bad Request

GET /candidatos

400 Bad Request{ "status" : 400, "code" : 40377, "message" : "Parâmetro 'estado' não pode ser nulo ou vazio" "more" : https://dev.empresa.com/errors/40377}

Page 75: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

200

400

500

Status & Error Codes

Outros Comuns

401

403

404

413

429

Unauthorized

Forbidden

Not Found

Request is too Large

Too Many Requests

Page 76: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

200

400

500

Status & Error Codes

500 Internal Server Error

PUT /vendas/v1/pedidos/9940382{ ”status" : canceled }

500 Internal Server Error{ "status" : 500, "message": ”Oops. Algo saiu errado”}

http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

Page 77: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Otimização

Filtros e paginação

Callbacks

Caching

Page 78: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

FiltrosGET /vendas/v2/pedidos?status=concluido

GET /pedidos/123AF15J?_fields=numero,data,valor

Busca com escopo (subconjuntos):

Respostas parciais:

GET /search?q=macbook+air

Busca Global:

Page 79: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Paginação

GET /pedidos?_offset=50&_limit=25

Recomendação:

Outras opções:

Linkedin:

Instagram:

?start=50&count=25

?min_id=3091&max_id=3245&count=25

Page 80: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

CachingEvite tráfego desnecessário

Latência de rede

Sobrecarga nos servidores

Atenção

❖ Tempo de invalidação do cache❖ Sincronização em clusters

Page 81: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Já chegamos?Já chegamos?

Já chegamos?Já chegamos?

Já chegamos?

Stop Pooling Me

Page 82: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Marketplace API

❖ Consulta estoque

❖ Cálculo de frete

❖ Novo pedido recebido

https://api.mywebstore.com/v1/estoque

https://api.mywebstore.com/v1/frete

https://api.mywebstore.com/v1/pedido

Chamadas Reversas:

Page 83: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Hypermedia

*POX = Plain Old XML, Richardson Maturity Model

HATEOAS = Hypermedia as the Engine of Application State

http://martinfowler.com/articles/richardsonMaturityModel.html

Page 84: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

GET /items?q=macbook+air+new { "results" : [ { "id" : 123, "name" : "Macbook Air 2010 LIKE NEW", "price" : "499" } ]}

SEMHypermedia

Page 85: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

COMHypermedia

GET /items?q=macbook+air+new { "results" : [ { "_links" : [ {"rel": "self","uri": "/items/123" }, {"rel": "bids","uri": "/items/123/bids" }, {"rel": "win","uri": "/items/123/bids?q=win" } ], "name" : "Macbook Air 2010 LIKE NEW", "price" : "499" } ]}

Page 86: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Segurança

❖ Acesso não autorizado

❖ Ataques

❖ Sobrecarga

❖ Confidencialidade

❖ Implementações desastradas em clients

Page 87: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Acesso não autorizado Segurança baseada na obscuridade

A prova de hackers Canal inseguro (hijacking)

Page 88: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Níveis de CRITICIDADE

Page 89: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Básico

Intermediário

Crítico❖ Quanto você conhece

dos Client Apps?

❖ As APIs dão acesso a informações sensíveis?

❖ As APIs alteram dados importantes?

Page 90: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Básico

Intermediário

Crítico

❖ Quanto você conhece dos Client Apps?

❖ As APIs dão acesso a informações sensíveis?

❖ As APIs alteram dados importantes?

API totalmente pública, potencialmente centenas de

Apps externos

Alguns Apps externos de parceiros bem conhecidos

Somente Apps desenvolvidos pela própria empresa

Page 91: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Básico

Intermediário

CríticoRegistros médicos, transações financeiras ou dados vitais ao

negócio

Informações sociais,Internet das coisas

Informações acessórias não relacionadas a usuários

❖ Quanto você conhece dos Client Apps?

❖ As APIs dão acesso a informações sensíveis?

❖ As APIs alteram dados importantes?

Page 92: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Básico

Intermediário

CríticoTodas as operações (inclusive

DELETEs) em elementos e coleções de recursos

GETs e alguns POSTs e PUTs em recursos não vitais

Somente GETs

❖ Quanto você conhece dos Client Apps?

❖ As APIs dão acesso a informações sensíveis?

❖ As APIs alteram dados importantes?

Page 93: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Separation ofCONCERNS

Web APIFAÇAD

E

Page 94: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Segurança❖ Agrupamento de elementos com

responsabilidades semelhantes

❖ Simplificação de regras de negócio

Separation ofCONCERNS Autenticação

Autorização

Privacidade

Disponibilidade

Auditoria

Integridade

Page 95: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

APIs

Web API

FAÇADEUsers Apps

Partners/Developers

Your Backend

Page 96: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Users Apps

APIs

AutenticaçãoAutorizaçãoDisponibilidadePrivacidadeAuditoriaIntegridade

API Gateway

Partners/Developers

Your Backend

Web API

FAÇADE

Page 97: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Autenticação /Autorização

Privacidade

Integridade Disponibilidade

Auditoria

❖ Acesso não autorizado❖ Ataque Força Bruta❖ Roubo de Credenciais❖ Session hijacking

❖ DDoS ❖ Buffer Overflow❖ Injection (SQL, XML, JSON)

❖ Information Disclosure ❖ Man-in-the-middle e

Network Eavesdropping❖ Data Scraping

❖ Injection (SQL, XML, JSON)❖ Cross-site Scripting (XSS) e

Request Forgery (XSRF)

❖ Repudiação❖ Compliance (PCI-DSS, HIPAA)

Page 98: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

App Token Basic HTTP OAuth 2.0 OpenID

http://downloads.sensedia.com/webinar-seguranca-de-apis

Page 99: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Instrum/zação

Eat your ownDog Food

Page 100: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Trace de calls,Monitoramento,Rate Limiting e

Alertas

Compreenda o padrão de uso

das APPs e APIs

Page 101: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

status.aws.amazon.com

Status Page, Release Notes,

Blog

Page 102: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Foruns de discussão e Abertura de tickets

desenvolvedores.catho.com.br

Page 103: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
Page 104: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Instrum/zação

Page 105: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
Page 106: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

REST + PHP

Page 107: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+Rest + PHP

Page 108: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+Silex

- Está entre os mais rápidos micro frameworks de REST PHP

- Baseado nos componentes Symphony

- Boa documentação e bom suporte da comunidade.

Page 109: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+Slim

- Está entre os mais rápidos micro frameworks de REST PHP

- Boa documentação

- Integrado com implementações de terceiros

Page 110: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+Lumen

- Baseado no Laravel

- Boa documentação

- Não tão rápido quanto o Slim ou Silex

Page 111: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+Phalcon

- O mais rápido dos frameworks REST PHP

- Extremamente otimizado e modular

- Não tão rápido quanto o Slim ou Silex

- Boa documentação

Page 112: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Api na prática

Page 113: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Backend

APIsThe Digital Glue

Integrações com Aplicações SaaS

Aplicações Móveis

Internet of Things

Aplicações Web

Ecossistema de Parceiros

Digitais

Page 114: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+A mudança

Belo Horizonte Campinas

Page 115: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+Visão de negócio

- Hub mudanças- Juntar as duas pontas:

- Clientes- Transportadoras- Compartilhar mudanças / cargas

Page 116: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

- Economia compartilhada- Legislação- Mercado estabelecido- Barreira de entrada: Base de usuários

+Oportunidades e Desafios

Page 117: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

- API como estratégia fundamental- Api com foco no cliente: Clientes

acessando apps- Api com foco no parceiro: Transportadoras

e donos de caminhões- Múltiplos dispositivos

+Estratégia de API First

Page 118: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Code!

Page 119: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

Swagger

+Swagger

Page 120: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+Geração de Sdk/Client

Page 121: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+Geração do API Front

Page 122: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+Postman

Page 123: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+Mock / Server

Page 124: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+Carregar Swagger no API Suite

Page 125: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+Ionic

Page 126: PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações

+Take Away

A integração do seu sistema deve ser pensada a partir do dia zero!

APIs estão nas agendas e no dia a dia

Quanto mais você investir no desenho das

APIs, mais atalhos poderá pegar no futuro