SlideShare uma empresa Scribd logo
Workshop Hands-On APIX 2018 - Trilha Básica
#APIX2018
APIX 2018
CASES SENSACIONAIS
CRESCIMENTO ANO APÓS ANO
2015 2016 20182017
269 501 668 750
SENSEDIA A REFERÊNCIA EM APIS NO BRASIL
"Visionary"
"Strong performer"
APP
APIXPay
PRESS START TO CONTINUE...
AGENDA :
SCORE: 28567 CREDITS 004
Progressive Web Apps
GraphQL
Design de APIs
Mock Dinâmico de APIs REST
APP Engine
Detecção de Fraudes
1
2
3
4
5
6
Composição de serviços7
GET READY!
PABLO DIOGO ANA PAULA
GULE CAMILA JULIO
CARLOS DIEGO MAIARA
TIAGO YAGO TIAGO
PROGRESSIVE
WEB APPS
PABLO
PWA - Progressive Web Apps
index.html
Corpo do documento, contém os campos a serem preenchidos, botões e referências para
outros arquivos necessários do projeto.
meta name="theme-color":
Define a cor tema do APP, que será utilizada na barra superior do navegador.
meta name="viewport":
Define o tamanho de visualização da tela, garantindo o melhor experiência de
usuário através de dispositivos de tamanhos diferentes.
manifest.json:
Arquivo contendo informações sobre o APP. Permite que a aplicação web seja tratada com
um mobile app.
PWA - Progressive Web Apps
sw.register.js:
Javascript utilizado para registrar o service worker, caso ainda não tenha sido registrado.
sw.js:
Service worker. Permite que o APP seja utilizado offline. Neste caso, a funcionalidade
offline é garantida através do salvamento em cache dos arquivos necessários para o
funcionamento, mas poderia também, por exemplo, linkar para um segundo arquivo HTML
caso não haja conectividade.
stylesheet.css:
Responsável por estilizar os elementos do arquivo HTML, auxiliando na parte visual e na
responsividade.
PWA - Progressive Web Apps
APP
.https://apix-pay.sensedia.com/
GRAPHQL
DIOGO
GraphQL
O que é GraphQL?
GraphQL é uma especificação de consulta
É intuitiva e bem flexível para requisições e interações de dados
Fornece uma sintaxe simples para client-side
Não tem dependência de banco de dados
Trafega sobre protocolo HTTP
Normalmente utiliza apenas um endpoint /graphql
GraphQL
Por que utilizar GraphQL?
Schema GraphQL é fortemente tipado.
Sem consumo excessivo, entrega exatamente o que você solicitou!
Requisições são verificadas contra o Schema
Interface web para testes, não necessário a instalação de um client
Possibilidade de criar uma camada GraphQL sobre:
APIs Rest
SOAP
Banco de Dados
etc
GraphQL
Recursos do GraphQL?
Query - Consultas!
Mutation - Operações para alteração de dados.
Resolvers - Responsável por resolver cada campo com sua origem de dados.
Interfaces - Forma de reutilizar estruturas no Schema.
GraphQL
Recursos do avançados do GraphQL?
Composição de GraphQL utilizando o Stitching
Whitelist Querys with Persisted Queries
Caching
GraphQL
Comunidades GraphQL
GraphQL
Portal de desenvolvedor
https://dev.elo.com.br
/
DESIGN
DE APIS
GULE
APIs & API Frist
Let’s Design!
URI
Produção: https://api.mycompany.com/name-of-api/resource
HTTPS Seu domínio Nome da API
(opcional)
Recursos e
Parâmetros
Versionamento: /v1/ /v2/ /v3/
/name-of-api/v1/resource
/2016-03-02/Accounts/
/services/data/v20.0/limits
Sandbox: https://api.sandbox.mycompany.com/
Dev Portal: https://developers.mycompany.com/
Let’s Design!
URI
Produção: https://api.mycompany.com/name-of-api/resource
HTTPS Seu domínio Nome da API
(opcional)
Recursos e
Parâmetros
Versionamento: /v1/ /v2/ /v3/
/name-of-api/v1/resource
/2016-03-02/Accounts/
/services/data/v20.0/limits
Sandbox: https://api.sandbox.mycompany.com/
Dev Portal: https://developers.mycompany.com/
Let’s Design!
Filters
GET /cart/v2/cards?status=actives
GET /orders/123AF15J?_fields=item,date,value
Filter search:
Parcial responses:
GET /search?q=apix+2018
Global search:
Let’s Design!
Verbs
Let’s Design!
HTTP Status Codes
Let’s Design!
HTTP Status Codes
Let’s Design!
HTTP Status Codes
● 1×× Informational
● 100 Continue
● 101 Switching Protocols
● 102 Processing
● 2×× Success
● 200 OK
● 201 Created
● 202 Accepted
● 203 Non-authoritative
Information
● 204 No Content
● 205 Reset Content
● 206 Partial Content
● 207 Multi-Status
● 208 Already Reported
● 226 IM Used
● 3×× Redirection
● 300 Multiple Choices
● 301 Moved Permanently
● 302 Found
● 303 See Other
● 304 Not Modified
● 305 Use Proxy
● 307 Temporary Redirect
● 308 Permanent Redirect
● 4×× Client Error
● 400 Bad Request
● 401 Unauthorized
● 402 Payment Required
● 403 Forbidden
● 404 Not Found
● 405 Method Not Allowed
● 406 Not Acceptable
● 407 Proxy Authentication Req.
● 408 Request Timeout
● 409 Conflict
● 410 Gone
● 411 Length Required
● 412 Precondition Failed
● 413 Payload Too Large
● 414 Request-URI Too Long
● 415 Unsupported Media Type
● ...
● 5×× Server Error
● 500 Internal Server Error
● 501 Not Implemented
● 502 Bad Gateway
● 503 Service Unavailable
● 504 Gateway Timeout
● 505 HTTP Version Not Supp.
● 506 Variant Also Negotiates
● 507 Insufficient Storage
● 508 Loop Detected
● 510 Not Extended
● 511 Network Authentication
Required
● 599 Network Connect
Timeout Error
Let’s Design!
/cards
Let’s Design!
/cards
/cards
/cards/{id}
/cards/{id}/transactions
Verbs: GET
API Plataform!
API Plataform!
API Plataform!
API Plataform!
API Plataform!
API Plataform!
API Plataform!
API Plataform!
API Plataform!
API Plataform!
API Plataform!
API Plataform!
API Plataform!
ACCESS
TOKEN
API Plataform!
POS
T
API Plataform!
POS
T
https://api-apix.sensedia.com/oauth/access-token
API Plataform!
POS
T
https://api-apix.sensedia.com/oauth/access-token
-H 'Content-type:application/json'
API Plataform!
POS
T
https://api-apix.sensedia.com/oauth/access-token
-H 'Content-type:application/json'
-H 'Authorization:Basic
ZjUxMDM5NGQtNjk5Ny0zN2I2LWFhZmMtZGU5MTE0Nzk1ZjBi
OjIyMTA4YzVhLTQ2NmEtM2E5Mi05NDdiLTQ1NzJlMmUzMjIz
Mw=='
API Plataform!
POS
T
https://api-apix.sensedia.com/oauth/access-token
-H 'Content-type:application/json'
-H 'Authorization:Basic
ZjUxMDM5NGQtNjk5Ny0zN2I2LWFhZmMtZGU5MTE0Nzk1ZjBi
OjIyMTA4YzVhLTQ2NmEtM2E5Mi05NDdiLTQ1NzJlMmUzMjIz
Mw=='
-d '{"grant_type" : "client_credentials"}'
API Plataform!
{"access_token":"fd2c3b24-d608-3a03-808d-810
8c8963177","token_type":"access_token","expire
s_in":3600}
API Plataform!
curl -XGET 'https://api-apix.sensedia.com/apix/v18/cards'
-H 'client_id:f510394d-6997-37b6-aafc-de9114795f0b'
-H 'access_token:fd2c3b24-d608-3a03-808d-8108c8963177'
MOCK DINÂMICO DE
APIS REST
ANA PAULA
Mockar
Por que Mockar APIs?
Mostrar valor para o cliente.
Agilizar o processo de desenvolvimento do Front-End.
Identificar possíveis falhas de modelagem.
Mock Estático
No Mock Estático não importa o filtro aplicado, sempre será obtido
o mesmo retorno.
GET /users/123
GET /users/321
Mock Dinâmico
No Mock Dinâmico as informações mudam de acordo com o filtro
aplicado.
GET /users/123
GET /users/321
JSON Server
JSON Server
Auxilia desenvolvedores de front-end que precisam de um back-end rápido para
prototipagem e simulação.
Repositório do Projeto > https://github.com/typicode/json-server
JSON Server - Mão na massa
● Instalar o NodeJS
○ Ubuntu
■ sudo apt update
■ sudo apt install nodejs
■ sudo apt install npm
○ Windows
■ https://nodejs.org/en/download/
● Instalar o JSON Server
○ npm install -g json-server
JSON Server - Mão na massa
● Criar um repositório NodeJS
○ npm init -y
● Criar um arquivo chamado db.json
● Gerar uma massa de dados
○ GET /cards
■ 6516536055739210
■ 6516536055739210
■ 6516531444344590
○ GET cards/{id}/transactions
■ Utilizaremos o Json Generator -> https://next.json-generator.com/
JSON Server - db.json
https://next.json-generator.com/EJhKfZfHS
JSON Server - package.json
● Alterar o packge.json
{
"name": "APIX2018 - Mock Server",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "json-server --watch db.json --port 8080 --host
0.0.0.0"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"json-server": "^0.14.0"
}
JSON Server
● Iniciar o JSON Server -> npm start
○ GET /cards
○ GET /cards/{id}
○ GET /cards/{id}/transactions
○ GET /cards?portador.cpf=29721580406
○ GET /cards/6516536822602139/transactions?_page=2&_limit=4
○ GET /cards/6516536822602139/transactions?_sort=data&_order=desc
○ e muito mais…..
APP Engine
JÔNATAS
APP Engine
● PaaS
● Deploy Blue-Green nativo
● AutoScaling
● Disponibilidade de versão
● Gerenciamento de SSL
● Blobstore
● Mencache
● Gerenciamento de Fila
● Firewall
● Standard, Flex(+Custom)
file: app.yaml
runtime: nodejs
env: flex
service: apix-2018
DETECÇÃO DE
FRAUDE
ANA PAULA GULE
Detecção de Fraude
Como identificar uma fraude?
Informações fornecidas na compra divergem das informações do cartão.
A compra está em uma localidade diferente do local de compra do cliente e não houve
notificação de viagem.
Padrão de compra está diferente do que o de costume.
Detecção de Fraude
Informações fornecidas na compra divergem das
informações do cartão.
Nome no cartão.
Código de Verificação
Data de Validade
COMPOSIÇÃO DE
SERVIÇOS
GULE
ANA PAULA
Composição de Serviço
Composição
Na operação POST /payments iremos incluir uma chamada para a operação GET
/cards/{id}
Validar as opções de fraude com informações divergentes do cartão.
Workshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha Básica
OBRIGADO

Mais conteúdo relacionado

PDF
Construção de APIs para Apps Móveis
PDF
Construindo APIs Mobile
PDF
APIs gerenciadas de ponta a ponta
PDF
APIs Atributos e Tecnologia
PDF
Impacto das mega tendências io t, cloud e mobile na arquitetura das grandes e...
PDF
Repensando o ESB: sua arquitetura SOA, usando APIs
PDF
Expondo APIs de back-ends legados e travados
PPTX
Repositorio SOA
Construção de APIs para Apps Móveis
Construindo APIs Mobile
APIs gerenciadas de ponta a ponta
APIs Atributos e Tecnologia
Impacto das mega tendências io t, cloud e mobile na arquitetura das grandes e...
Repensando o ESB: sua arquitetura SOA, usando APIs
Expondo APIs de back-ends legados e travados
Repositorio SOA

Mais procurados (17)

PDF
Indicadores para APIs
PDF
DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...
PDF
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
PDF
Impulsionando startups com api publica
PDF
SOA e APIs: O que muda e o que segue!
PDF
Economia das APIs - Uma visão de negócios
PDF
Casos de Sucesso WSO2 no Governo Brasileiro
PDF
Vida longa para SOA com microservices
PDF
WSO2 para o Governo Brasileiro
PPTX
Monitoração de Aplicações Distribuídas
PDF
Skalena - Overview de Soluções
PDF
Soa Em Tempos De Crise
PDF
Transformação Digital de Forma Pragmatica WSO2
PDF
WSO2 - Visão Geral - Update 2015
PDF
WSO2 - Visão Geral de Negócios
PDF
REST - padrões e melhores práticas
PDF
Minicurso de Desenvolvimento Híbrido utilizando Ionic Framework
Indicadores para APIs
DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
Impulsionando startups com api publica
SOA e APIs: O que muda e o que segue!
Economia das APIs - Uma visão de negócios
Casos de Sucesso WSO2 no Governo Brasileiro
Vida longa para SOA com microservices
WSO2 para o Governo Brasileiro
Monitoração de Aplicações Distribuídas
Skalena - Overview de Soluções
Soa Em Tempos De Crise
Transformação Digital de Forma Pragmatica WSO2
WSO2 - Visão Geral - Update 2015
WSO2 - Visão Geral de Negócios
REST - padrões e melhores práticas
Minicurso de Desenvolvimento Híbrido utilizando Ionic Framework
Anúncio

Semelhante a Workshop Hands-On APIX 2018 - Trilha Básica (20)

PDF
Rest web services com Java
PPTX
Design de APIs REST
PDF
REST Web Services com Java
KEY
Python 08
PDF
PPTX
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
PDF
Como um grande sistema REST funciona - arquitetura e desempenho
PDF
QCon 2015 - Combinando AngularJS com Java EE
PDF
GUJavaSC - Combinando AngularJS com Java EE
PDF
Aplicações web realtime
PDF
Application Servers e Ruby
PDF
Arquitetura Web Desacoplada - FCI/Mackenzie
PDF
Construindo um sistema distribuido usando rest
PDF
Os 7 Pecados Capitais na exposição de APIs RESTful
PDF
JHipster - Produtividade e Maturidade em suas mãos
PDF
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
PDF
Criando uma grid para execução de testes paralelo com Appium
PDF
Arquitetura Serverless para Machine Learning
PDF
Curso AngularJS - Parte 1
PDF
Deck apix 2017 design & security - case cielo lio
Rest web services com Java
Design de APIs REST
REST Web Services com Java
Python 08
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Como um grande sistema REST funciona - arquitetura e desempenho
QCon 2015 - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EE
Aplicações web realtime
Application Servers e Ruby
Arquitetura Web Desacoplada - FCI/Mackenzie
Construindo um sistema distribuido usando rest
Os 7 Pecados Capitais na exposição de APIs RESTful
JHipster - Produtividade e Maturidade em suas mãos
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
Criando uma grid para execução de testes paralelo com Appium
Arquitetura Serverless para Machine Learning
Curso AngularJS - Parte 1
Deck apix 2017 design & security - case cielo lio
Anúncio

Mais de Sensedia (20)

PDF
Case Sensedia Catho
PDF
Case Sensedia Simpress
PDF
Case Sensedia Cielo
PDF
Case Sensedia B2W
PDF
Case Cnova Page
PPTX
Case Cnova-en
PPTX
Case Simpress
PPTX
Caso de Estudo CNova
PDF
Construção de APIs para apps móveis
PPTX
Open Banking Platform - Intro
PPT
Modelo Canônico: Vilão ou Mocinho?
PPTX
Hackathons & Innovation: como engajar desenvolvedores em torno da sua empresa...
PDF
Governança de Serviços Automatizada na Prática
PDF
Hadoop - Primeiros passos
PDF
O poder das APIs
PPTX
Open API Strategy, by Sensedia
PPTX
Estratégia de APIs Abertas
PDF
2o workshop governanca soa na pratica
PPTX
Integração ensemble e governança repository
PPTX
Webinar: Maturidade e Roadmap SOA
Case Sensedia Catho
Case Sensedia Simpress
Case Sensedia Cielo
Case Sensedia B2W
Case Cnova Page
Case Cnova-en
Case Simpress
Caso de Estudo CNova
Construção de APIs para apps móveis
Open Banking Platform - Intro
Modelo Canônico: Vilão ou Mocinho?
Hackathons & Innovation: como engajar desenvolvedores em torno da sua empresa...
Governança de Serviços Automatizada na Prática
Hadoop - Primeiros passos
O poder das APIs
Open API Strategy, by Sensedia
Estratégia de APIs Abertas
2o workshop governanca soa na pratica
Integração ensemble e governança repository
Webinar: Maturidade e Roadmap SOA

Último (20)

PPTX
Aula sobre banco de dados com firebase db
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PPTX
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Émile Durkheim slide elaborado muito bom
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Processos na gestão de transportes, TM100 Col18
Aula sobre banco de dados com firebase db
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
COBITxITIL-Entenda as diferença em uso governança TI
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Émile Durkheim slide elaborado muito bom
Apple Pippin Uma breve introdução. - David Glotz
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
Custos e liquidação no SAP Transportation Management, TM130 Col18
Processos na gestão de transportes, TM100 Col18

Workshop Hands-On APIX 2018 - Trilha Básica