SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
API Best Practices
Daniel Christofolli
3ª Apresentação
Application Programming Interface
● Conjunto de especificações que são utilizadas para fazer a interface entre
os diferentes programas de software que rodam em uma única aplicação
ou hardware;
● Semelhante ao modelo SaaS (Software as a Service), uma vez que não
temos que começar do zero cada vez que fazemos um programa;
Simple Object Access Protocol
É um protocolo baseado em XML para troca de informações estruturadas em
uma plataforma descentralizada e distribuída.
● Envelope => define o que está na mensagem e como processá-la
● Header => conjunto de regras codificadas para expressar instâncias do tipos de
dados definidos na aplicação
● Body => instruções para representar chamadas de procedimentos e respostas.
Estrutura
Representational State Transfer
Conjunto de práticas que ajudam a desenvolver web services bem
estruturados. Suporta vários formatos, incluindo JSON, HTML e XML
Princípios
● Stateless => a mensagem HTTP carrega todas as informações
necessárias para compreender a requisição.
● Operações bem definidas => POST, GET, PUT e DELETE
● Sintaxe Universal => cada recurso é unicamente direcionado através da
sua URI
● Hipermídia => é possível navegar entre os recursos seguindo links
● Interface cliente/servidor uniforme => Identificação dos recursos,
representação dos recursos, mensagens auto-descritivas e hipermídia
● Requisição => composta pelo método HTTP e pela URI
● Body => conteúdo da requisição ou da resposta;
● JSON => formato simples, baseado em key/ value;
Estrutura REST
Identificação dos recursos
● Recurso = Tudo que é gerenciado por uma API;
● URI = Endereço completo de um recurso
Uniform Resource Identifier
● Utilize URI’s legíveis
● Utilize o mesmo padrão de URI na identificação dos recursos
● Evite adicionar na URI a operação a ser realizada no recurso
● Evite adicionar na URI o formato desejado da representação do recurso
● Evite alterações nas URI’s
Exemplos de URIs
http://servicorest.com.br/produtos;
http://servicorest.com.br/clientes;
http://servicorest.com.br/clientes/57;
http://servicorest.com.br/vendas.
http://servicorest.com.br/produto (Singular);
http://servicorest.com.br/clientes (Plural);
http://servicorest.com.br/processosAdministrativos (Camel
Case);
http://servicorest.com.br/processos_judiciais (Snake Case).
http://servicorest.com.br/produtos/cadastrar;
http://servicorest.com.br/clientes/10/excluir;
http://servicorest.com.br/vendas/34/atualizar.
http://servicorest.com.br/produtos/xml;
http://servicorest.com.br/clientes/112?formato=json.
Hypermedia as the Engine of Application State
● Navegação dinâmica entre endpoints através de links adicionados aos
dados
● Essa combinação representa o estado do sistema
● Reforça o stateless => O servidor não precisa manter registro da sessão: o
próprio cliente sabe que as únicas transições possíveis são aquelas para
as quais existe um link disponível
Exemplo de Hateoas
● rel => Nesse caso o link faz referência à própria pessoa;
● href => URL completa que define um único recurso
Objeto Cliente
JSON simples
JSON Hateoas
SOAP x REST
● SOAP ainda é muito usado em sistemas legados;
● A curva de aprendizado é menor no REST;
● O stateless e o uso de JSON tornam o REST mais eficiente;
● REST trabalha com vários formatos de mensagens, SOAP só usa XML;
● REST usa operações baseadas em recursos, usando requisições HTTP;
● REST permite o uso de repetição de envio de mensagens;
Conclusão
Ao adotarmos boas práticas em nossos projetos, teremos sistemas portáveis,
escaláveis e desacoplados, facilitando a manutenção e reutilização dos
nossos códigos

Más contenido relacionado

Similar a Api best practices - SOAP vs REST

Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no androidAlexandre Antunes
 
Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Maurício Linhares
 
Criando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONCriando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONAmbiente Livre
 
Criando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONCriando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONMarcio Junior Vieira
 
Workshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsWorkshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsHeider Lopes
 
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASO MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASHeider Lopes
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EELuan Felipe Knebel
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...Tchelinux
 
Deck apix 2017 design & security - case cielo lio
Deck apix 2017   design & security - case cielo lioDeck apix 2017   design & security - case cielo lio
Deck apix 2017 design & security - case cielo lioLuis Moraes Junior
 
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...Tchelinux
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endGiovanny Valente
 
TDC2016POA | Trilha PHP - Desenvolvendo um buscador com PHP e Elasticsearch
TDC2016POA | Trilha PHP - Desenvolvendo um buscador com PHP e ElasticsearchTDC2016POA | Trilha PHP - Desenvolvendo um buscador com PHP e Elasticsearch
TDC2016POA | Trilha PHP - Desenvolvendo um buscador com PHP e Elasticsearchtdc-globalcode
 
Monitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com ZabbixMonitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com ZabbixAndré Déo
 
Webservices em PHP e a liberdade da Web
Webservices em PHP e a liberdade da WebWebservices em PHP e a liberdade da Web
Webservices em PHP e a liberdade da WebAlexandre Andrade
 

Similar a Api best practices - SOAP vs REST (20)

Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no android
 
Web service
Web serviceWeb service
Web service
 
Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01
 
Criando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONCriando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSON
 
Criando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONCriando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSON
 
Workshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsWorkshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIs
 
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASO MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EE
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
 
Deck apix 2017 design & security - case cielo lio
Deck apix 2017   design & security - case cielo lioDeck apix 2017   design & security - case cielo lio
Deck apix 2017 design & security - case cielo lio
 
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-end
 
Palestra Sobre REST
Palestra Sobre RESTPalestra Sobre REST
Palestra Sobre REST
 
TDC2016POA | Trilha PHP - Desenvolvendo um buscador com PHP e Elasticsearch
TDC2016POA | Trilha PHP - Desenvolvendo um buscador com PHP e ElasticsearchTDC2016POA | Trilha PHP - Desenvolvendo um buscador com PHP e Elasticsearch
TDC2016POA | Trilha PHP - Desenvolvendo um buscador com PHP e Elasticsearch
 
Palestra
PalestraPalestra
Palestra
 
A Linguagem Php
A Linguagem PhpA Linguagem Php
A Linguagem Php
 
Monitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com ZabbixMonitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com Zabbix
 
Webservices em PHP e a liberdade da Web
Webservices em PHP e a liberdade da WebWebservices em PHP e a liberdade da Web
Webservices em PHP e a liberdade da Web
 
Rest introdução
Rest introduçãoRest introdução
Rest introdução
 

Api best practices - SOAP vs REST

  • 1. API Best Practices Daniel Christofolli 3ª Apresentação
  • 2. Application Programming Interface ● Conjunto de especificações que são utilizadas para fazer a interface entre os diferentes programas de software que rodam em uma única aplicação ou hardware; ● Semelhante ao modelo SaaS (Software as a Service), uma vez que não temos que começar do zero cada vez que fazemos um programa;
  • 3. Simple Object Access Protocol É um protocolo baseado em XML para troca de informações estruturadas em uma plataforma descentralizada e distribuída.
  • 4.
  • 5. ● Envelope => define o que está na mensagem e como processá-la ● Header => conjunto de regras codificadas para expressar instâncias do tipos de dados definidos na aplicação ● Body => instruções para representar chamadas de procedimentos e respostas. Estrutura
  • 6. Representational State Transfer Conjunto de práticas que ajudam a desenvolver web services bem estruturados. Suporta vários formatos, incluindo JSON, HTML e XML
  • 7. Princípios ● Stateless => a mensagem HTTP carrega todas as informações necessárias para compreender a requisição. ● Operações bem definidas => POST, GET, PUT e DELETE ● Sintaxe Universal => cada recurso é unicamente direcionado através da sua URI ● Hipermídia => é possível navegar entre os recursos seguindo links ● Interface cliente/servidor uniforme => Identificação dos recursos, representação dos recursos, mensagens auto-descritivas e hipermídia
  • 8. ● Requisição => composta pelo método HTTP e pela URI ● Body => conteúdo da requisição ou da resposta; ● JSON => formato simples, baseado em key/ value; Estrutura REST
  • 9. Identificação dos recursos ● Recurso = Tudo que é gerenciado por uma API; ● URI = Endereço completo de um recurso
  • 10. Uniform Resource Identifier ● Utilize URI’s legíveis ● Utilize o mesmo padrão de URI na identificação dos recursos ● Evite adicionar na URI a operação a ser realizada no recurso ● Evite adicionar na URI o formato desejado da representação do recurso ● Evite alterações nas URI’s
  • 11. Exemplos de URIs http://servicorest.com.br/produtos; http://servicorest.com.br/clientes; http://servicorest.com.br/clientes/57; http://servicorest.com.br/vendas. http://servicorest.com.br/produto (Singular); http://servicorest.com.br/clientes (Plural); http://servicorest.com.br/processosAdministrativos (Camel Case); http://servicorest.com.br/processos_judiciais (Snake Case). http://servicorest.com.br/produtos/cadastrar; http://servicorest.com.br/clientes/10/excluir; http://servicorest.com.br/vendas/34/atualizar. http://servicorest.com.br/produtos/xml; http://servicorest.com.br/clientes/112?formato=json.
  • 12. Hypermedia as the Engine of Application State ● Navegação dinâmica entre endpoints através de links adicionados aos dados ● Essa combinação representa o estado do sistema ● Reforça o stateless => O servidor não precisa manter registro da sessão: o próprio cliente sabe que as únicas transições possíveis são aquelas para as quais existe um link disponível
  • 13. Exemplo de Hateoas ● rel => Nesse caso o link faz referência à própria pessoa; ● href => URL completa que define um único recurso Objeto Cliente JSON simples JSON Hateoas
  • 14. SOAP x REST ● SOAP ainda é muito usado em sistemas legados; ● A curva de aprendizado é menor no REST; ● O stateless e o uso de JSON tornam o REST mais eficiente; ● REST trabalha com vários formatos de mensagens, SOAP só usa XML; ● REST usa operações baseadas em recursos, usando requisições HTTP; ● REST permite o uso de repetição de envio de mensagens;
  • 15. Conclusão Ao adotarmos boas práticas em nossos projetos, teremos sistemas portáveis, escaláveis e desacoplados, facilitando a manutenção e reutilização dos nossos códigos