10 atributos de uma API de sucesso

Documentos relacionados
Topic Title. API-first

Informática Parte 26 Prof. Márcio Hunecke

REST. Representational State Transfer. É um estilo arquitetural usado por muitas aplicações Web para estender as suas funcionalidades.

>>> RESTful API >>> Com Node.js e Restify. Name: Anderson Pimentel Date: 19 de Março de

Web Services REST. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Design Coerente: decisões de tecnologia para APIs

Python para web com Flask. #PythonAmazonas

Arquitetura de Serviços na Embrapa, viabilização da integração de informações eletrônicas de UDs e UCs. 12 de agosto de 2014 Fernando Chagas Santos

Webservices LEANDRO MENDES FERREIRA

API icontrato. Versão 1.0. Para ajuda e informações, abra um chamado pelo

Desenvolvimento de Aplicações Distribuídas

Serviç os da Web de distribuiç ã o digital (DDWS) GetMyPrice - Serviço manual

GUIA API BTB /04/2019 INFORMAÇÃO PÚBLICA

Correios Web Service (CWS)

API DE INTEGRAÇÃO VERSÃO 2. Janeiro/2017. Manual de Integração. Setor de Desenvolvimento

STD29006 Sistemas Distribuídos

Fábio Rosato Professional Services confidential 1

Documentação API VMPay Documentation

API Documentation. Release Igor Morse

Desenvolvimento de Aplicações Distribuídas

Conceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON)

Web Services REST e JSON

Service Oriented Architecture SOA

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta

API - Lista de Compras

Web das Coisas WoT. Software: APIs para IoT. Prof. João Bosco Teixeira Junior

Documentação da API Likestore

Integração REST Text2Speech Versão 1.1

Apis Rest Autoescaláveis

Admin Docs Documentation

Documentação API. Documentação API V2.0 Integracommerce. versão 2.0. Integracommerce. Documentação API Página 1 de 35 Projeto: API Integracommerce 2.

Raspando dados. O maravilhoso mundo da multidão de informações. pedro belasco - cromatica - cdc W3C - Open Data

Instrutor: Eder Martins Franco

Desmistificando as aplicações RESTful usando o Django Rest. Bruno Oliveira Instituto Federal da Bahia


Paradigmas de Programação React Native

Redes de Computadores e Aplicações Camada de aplicação IGOR ALVES

Arquitetura da World Wide Web. WWW: Histórico. WWW: Usos. WWW: Histórico. WWW Tecnologias Fundamentais. Comércio Eletrônico na WWW

AJAX. Aula 01 - Introdução

RestFull WebServices. Rafael Nunes Arquiteto de Software / Instrutor Globalcode. Globalcode Open4Education

EA975 - Laboratório de Engenharia de Software

Aula 4 Arquitetura de software na Web atual: AJAX e Ajax. Prof: Dra. Renata Pontin de Mattos Fortes

Para efetuar a configuração de s no painel, acesse o cpanel a partir do link abaixo:

PURCHASE-TO-PAY SOLUTIONS

Globalcode Open4education. Trilha Ruby. Sergio Lima Ruby Developer

Avaliação de Frameworks de Produtividade para aplicações CRUD

Protocolo HTTP. Professor Leonardo Larback

Redes de Computadores

ConsoleBox Uma ferramenta para verificação e validação de APIs RESTful ConsoleBox A tool for verification and validation of RESTful APIs

1 INTRODUÇÃO CERTIFICADO DE SEGURANÇA SSL AUTENTICAÇÃO WEB METHOD: LOGIN WEB METHOD: LISTBONDCODES...

1 INTRODUÇÃO CERTIFICADO DE SEGURANÇA SSL AUTENTICAÇÃO WEB METHOD: LOGIN WEB METHOD: LISTBONDCODES...

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA. Ivan Luiz Salvadori

CULTURA DEVOPS. Caminhos mais ágeis e inovadores. Rafael Chies Senior Domain Architect 19/09/2017

Desenvolvendo Aplicações RESTFul utilizando Node.js

Web Services REST JAX-RS

modelos, bancos de dados e active record

Uso da Internet. Disciplina: Gestão da Tecnologia de Sistemas. Professor: Thiago Silva Prates

solaredx Documentation

Web Services. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul

Orquestração de microservices com REST na Americanas.com

Integrated Government Resources Planning IGRP Open Source. Como importar e contribuir - GitHub. Núcleo Operacional da Sociedade de Informação

Uma sintaxe universal para identificar os recursos. No sistema REST, cada recurso é unicamente direcionado através da sua URI.

REST. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 35

6127. Redes comunicação de dados. 2014/2015. Acesso à Internet.

globo.com Desafios no desenvolvimento de ferramentas de segurança Vitória Rio

Exemplo de configuração local da autenticação da Web do portal do convidado do Identity Services Engine

Layout de Integração Webservice Layout de Integração com SIP via Webservices Versão 1.4

Correios Web Service (CWS)

Manual de uso da API de Avaliação e Acompanhamento. servicos.gov.br

SUMÁRIO REST. REST + OAuth. Cliente em Java Processamento de respostas JSON

Ricardo R. Lecheta. Novatec

REST. Caio Nakashima

Plataforma Dados Saúde. WebAPI

Evolução guiada por APIs. com REST para modernizar seu legado

REST RESTfulWeb Services JAX-RS

PAPO SMS MANUAL DE INTEGRAÇÃO DO DESENVOLVEDOR VERSÃO 1.0.1

Expondo APIs de back-ends legados e travados. Fábio

Configurar e pesquise defeitos o agente do telefone IP da fineza (FIPPA) em UCCX

SIP Session Initiation Protocol

API - IMERCADO Captura, Alocação e Repasse

Desenvolvimento Java com ferramentas IBM


Desmistificando REST com Java por Emílio Dias

Introdução a Computação em Nuvem

Web service para acesso a dados da aplicação Caronas

Análise de desempenho entre serviços web SOAP e RESTful utilizando a ferramenta Apache jmeter

Manual de Integração Cartórios

Integração de sistemas utilizando Web Services do tipo REST

InPost Brasil. Integração e-commerce e InPost. Revisão 0.1 API 1.0 Informações Confidenciais e Proprietárias da InPost Brasil Ltda.

Estruturas de Sistemas Operacionais

API REST Alimentação/Retorno

Engenharia de Aplicações Sistemas Interactivos 2009/10! JAVASERVER FACES 1.2. Mestrado em Informática Universidade do Minho! 31!

VERSION BASE - Controle de Versão de Banco de Dados para Aplicações Móveis

API. Lista de métodos da API do Funil de Vendas. Criação de Atividade. POST /v2/activities. Authorization: Basic { ACTIVITY } Exemplo:


Instruções de atualização do mapa

A extensão Mobility(EM) CUCM 12.X e a mobilidade de extensão Cluster(EMCC) transversal entram o serviço URL

Transcrição:

10 atributos de uma API de sucesso Do design RESTful e segurança, a formas de divulgação e engajamento Kleber Bacili kleber.bacili@sensedia.com @kleberbacili slideshare.net/kleberbacili

Cerquilho Kleber Bacili kleber.bacili@sensedia.com @kleberbacili

Contextualização Planejamento e Preparação Agenda Design e Construção Execução e Engajamento

Contextualização

v Design, Exposição, Gerenciamento e Engajamento em APIs v Headquarter em Campinas, escritórios em Sampa, Rio e Philly v Classificados como Visionários no Quadrante Mágico do Gartner (*) Magic Quadrant for Integrated SOA Governance Technology Sets, 2009

ComparMlhando tudo com todos O Tempo todo com o usuário The Nexus of Forces Inundação de dados e contexto Implantanto e rodando em algum lugar Source: Gartner (Jun/2012)

The Internet of Things

10 Atributos de uma API de sucesso

Plan & Prepare API Strategy Run & Engage Design & Build

Plan & Prepare API Strategy Run & Engage Design & Build

As primeiras decisões de design

Selecione a Tecnologia Adequada SOAP vs. REST

Selecione a Tecnologia Adequada XML vs. JSON

and the winners are REST + JSON

1 Proposta de Valor

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

Plan & Prepare API Strategy Run & Engage Muitos projetos; Design & & Equipe & Build pequena

2 Design RESTful

REST RepresentaMonal State Transfer EsMlo arquitetural criado por Roy Fielding RESTful Design que respeita os conceitos REST

Coleção Resources /pedidos! Elemento /pedidos/{id}!

RPC? /getaccount! /getallaccounts! /createdirectory! /updategroupname! /findclientbyid!

GET POST PUT DELETE

GET! POST! PUT! DELETE! Método de Consulta GET /vendas/pedidos! GET /checklist/item/4! PATCH!

GET! POST! PUT! DELETE! PATCH! Método para Criação POST /clientes/98w3g32k01/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! Método para Atualização PUT /clientes/98w3g32k01/enderecos/1! {! "endereco": "Av. Brigadeiro Faria Lima",! "numero": "3820",! "complemento": "19o. Andar",! "bairro": "Itaim Bibi",! "cidade": "São Paulo",! "estado": "SP",! "cep": "04538-132"! }

GET! POST! PUT! DELETE! Método para Remoção DELETE /pedidos/{id}! DELETE /users/98w3g32k01/photos! PATCH!

GET! POST! PUT! DELETE! PATCH! Método para Atualização parcial PATCH /users/98w3g32k01! {! "email": "joao.silva@empresa.com"! } PATCH /pedidos/39009186! {! "status": "Cancelado"! }

3 Versionamento

THINGS CHANGE! v1 v2 v3 v4 v5 v6 v7

Versionamento Versão URI: https://api.mycompany.com/name-of-api/v2/resource! HTTP ou HTTPS Seu domínio Nome da API (opcional) Recursos e Parâmetros Outras alternamvas: Twilio: /2010-04- 01/Accounts/ Salesforce.com: /services/data/v20.0/sobjects/account

4 Error Handling

200! 400! 500! Resultado OK Erro no Client Erro no Server

STATUS OK 200!

Status & Error Codes 200!!! 400!!! 500! 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! }! ]!

Status & Error Codes 200!!! 400!!! 500! 201 Created POST /items/1234/bids! {! "amount" : 602.99! } 201 Created! Location: /items/1234/bids/100001! {! "amount" : 602.99,! "current_bid" : 510,! "winning" : true! }!

Status & Error Codes 200!!! 400!!! 500! 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! }!

Status & Error Codes 200!!! 400!!! 500! 401!! 403! 404!! 413!! 429! Outros Comuns Unauthorized Forbidden Not Found Request is too Large Too Many Requests

Status & Error Codes 200!!! 400!!! 500! 500 Internal Server Error PUT /vendas/v1/pedidos/9940382! {! status" : canceled! } 500 Internal Server Error! {! "status" : 500,! "message": Oops. Algo saiu errado! }! hmp://en.wikipedia.org/wiki/list_of_http_status_codes

Mais informações? Vídeo do Webinar hdp://downloads.sensedia.com/webinar- design- de- apis- resful

5 Segurança

v Acesso não autorizado v Ataques v Sobrecarga v Confidencialidade v Implementações desastradas de clients

v Acesso não autorizado v Ataques v Sobrecarga v Confidencialidade v Implementações desastradas de clients

Identidade e Autorização þ Identificar App (?) þ Identificar Usuário (?) þ Identificar Device (?)

HTTPS, sempre!

6 Hypermedia

Hypermedia APIs HATEOAS = Hypermedia as the Engine of ApplicaMon State *POX = Plain Old XML, Richardson Maturity Model

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

COM Hypermedia 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" }! ]! }

Plan & Prepare API Strategy Muitos projetos; Run & Engage Equipe pequena Design & Build

7 Developers Portal

Docs incompletos, desatualizados, estáocos e com PDFs de 100 páginas

Gehng Started www.twilio.com/docs!

desenvolvedores.extra.com.br! Documentação InteraOva

sendgrid.com/docs! Exemplos de código na linguagem do developer

8 Self- Service

stripe.com/docs! Sign- up e Tokens de acesso automáocos

REST Console ou Sandbox / Playgroung dev.transparencia.org.br!

9 Confiabilidade

Indisponibilidade Problemas de Performance Mudanças (não- planejadas) Bugs Confiabilidade Falta de Suporte

www.sensedia.com/br! Trace de calls, Monitoramento, Rate LimiOng e Alertas

status.aws.amazon.com! Status Page, Release Notes, Blog

desenvolvedores.extra.com.br! Foruns de discussão e Abertura de Ockets

10 Divulgação

Hackathon & Open InnovaOon

1 Apps criadas: 300+ 2 Developers cadastrados: 800+ 3 Tráfego: 20M calls / 15 dias 4 Eleições mais transparentes!

Plan & Prepare API Strategy Run & Engage Design & Build

1 Proposta de Valor 6 Hypermedia 2 Design RESTful 7 Developers Portal 3 Versionamento 8 Self- Service 4 Error Handling 9 Confiabilidade 5 Segurança 10 Divulgação

www.linkedin.com/groups/api- Web- Services- Brasil- 5000376 www.meetup.com/api- Craoers- Brasil/

Kleber Bacili kleber.bacili@sensedia.com @kleberbacili slideshare.net/kleberbacili