Design Coerente: decisões de tecnologia para APIs

Tamanho: px
Começar a partir da página:

Download "Design Coerente: decisões de tecnologia para APIs"

Transcrição

1 Design Coerente: decisões de tecnologia para APIs

2 GET /whoami Ravan Scafi Back-end Developer na Leroy Merlin Brasil Co-organizador do Meetup do Laravel SP Evangelista do

3 API? O que é uma API?

4 Interface é um elemento que proporciona uma ligação física ou lógica entre dois sistemas ou partes de um sistema que não poderiam ser conectados diretamente.

5 Parte 1 Recursos vs Operações

6 Quando Pensamos em APIs...

7 REST REpresentational State Transfer

8 REST Baseado em Endpoints GET /api/users/rscafi HTTP/1.1 Host: meusite.dev

9 REST Separado por Recursos (Substantivos) GET /api/users/rscafi HTTP/1.1 Host: meusite.dev

10 REST Verbos HTTP indicam a ação GET /api/users/rscafi HTTP/1.1 Host: meusite.dev

11 REST Relação Cliente-Servidor

12 REST Segue convenções HTTP

13 REST Controle por Hypermedia (HATEOAS - RMM)

14 GET /api/users/rscafi HTTP/1.1 Host: meusite.dev

15 { } "id": "rscafi", "name": "Ravan Scafi", "website": " "_links": { "self": { "href": " }, "hobbies": { "href": " }, }

16 REST Endpoints cacheáveis

17 REST Uniforme

18 REST Feito para durar décadas

19 REST Problemas (Spoiler: Parte 1!)

20 REST - Problemas Recomendações nem sempre são seguidas

21 REST - Problemas Excesso de Roundtrips dependendo da operação

22 REST - Problemas Nem sempre os Verbos HTTP disponíveis falam com clareza

23 Exemplo - Slack Um usuário pode ser kickado, banido ou pode deixar um canal

24 Exemplo - Slack DELETE /users/rscafi HTTP/1.1 Host: api.slack.com

25 Exemplo - Slack DELETE /users/rscafi HTTP/1.1 Host: api.slack.com Content-Type: application/json { status : kicked }

26 Exemplo - Slack DELETE /users/rscafi HTTP/1.1 Host: api.slack.com Content-Type: application/json { status : kicked, kick_channel : random }

27 Exemplo - Slack DELETE /channels/random/users/rscafi HTTP/1.1 Host: api.slack.com

28 Exemplo - Slack DELETE /channels/random/users/rscafi HTTP/1.1 Host: api.slack.com Content-Type: application/json { status : kicked }

29 REST - Problemas Operações BULK fogem do Padrão

30 O que fazer??

31 RPC Remote Procedure Call!

32 RPC Baseado em Endpoints POST /api/getuser HTTP/1.1 Host: meusite.dev Content-Type: application/json { id : rscafi }

33 RPC Similar à chamada de funções POST /api/getuser HTTP/1.1 Host: meusite.dev Content-Type: application/json { id : rscafi }

34 Equivalência // definição function getuser (id) { // } // chamada getuser('rscafi');

35 RPC Popularizado pelo SOAP (Simple Object Access Protocol)

36 SOAP - Exemplo <?xml version="1.0" encoding="utf-8"?> <soapenv:envelope xmlns:soapenv=" xmlns:xsd=" xmlns:xsi=" <soapenv:header> <ns1:requestheader soapenv:actor=" soapenv:mustunderstand="0" xmlns:ns1=" <ns1:networkcode>123456</ns1:networkcode> <ns1:applicationname>dfpapi-java dfp_test</ns1:applicationname> </ns1:requestheader> </soapenv:header> <soapenv:body> <getadunitsbystatement xmlns=" <filterstatement> <query>where parentid IS NULL LIMIT 500</query> </filterstatement> </getadunitsbystatement> </soapenv:body> </soapenv:envelope>

37 RPC Porém o SOAP perdeu espaço para as APIs REST

38 REST - Exemplo GET /ads?parentid=null&limit=500 HTTP/1.1 HOST: api.example.com

39 RPC Mas não existe somente o SOAP!

40 RPC baseado em JSON - Exemplo POST /getadunitsbystatement HTTP/1.1 HOST: api.example.com Content-Type: application/json {"filter": "WHERE parentid IS NULL LIMIT 500"}

41 RPC Foco em Operações

42 Exemplo - Slack POST /api/channels.kick HTTP/1.1 Host: slack.com Content-Type: application/json { "token": "xxxx-xxxxxxxxx-xxxx", "channel": "random", "user": "rscafi" }

43 RPC Relação entre (Micro) Serviços

44 RPC A partir de uma Definição de serviços, código é gerado

45 RPC Complexidade Abstraída

46 Google de chamadas RPC POR SEGUNDO!

47 grpc Framework universal, open source e performático

48 grpc HTTP/2

49 grpc Protocol Buffers

50 grpc Linguagem de Definição de Serviços

51 grpc service Greeter { rpc SayHello (HelloRequest) returns (HelloReply) {} } message HelloRequest { string name = 1; } message HelloReply { string message = 1; }

52 grpc Gera código para as maiores linguagens

53 grpc protoc --proto_path=examples/protos \ --php_out=examples/php \ --grpc_out=examples/php \ --plugin=protoc-gen-grpc=bins/opt/grpc_php_plugin \./examples/protos/helloworld.proto

54 grpc Cria stubs de Classes, onde os métodos correspondem a uma rota RPC

55 grpc $request = new Helloworld\HelloRequest(); $request->setname($name); list($reply, $status) = $client->sayhello($request)->wait(); $message = $reply->getmessage();

56 RPC Problemas

57 RPC - Problemas Abstrai complexidade (!)

58 RPC - Problemas Pode complicar mais do que se não estivesse presente

59 REST vs RPC Foco Complexidade Comunicação REST Recursos Exposta Sistemas RPC Operações Abstraída Serviços

60 Parte 2 Clientes

61 Quem vai consumir esses dados?

62 API

63 API

64 API

65 Como evitar isso?

66 BFF Backend For Frontend

67 BFF Abordagem criada pelo SoundCloud

68 BFF Clientes da API eram muito diferentes entre si

69 Clientes do SoundCloud Mobile Web Parceiros

70 BFF Cada equipe mantém uma API para atender às suas necessidades

71 BFF Menos burocracia para evoluir as APIs

72 SoundCloud BFFs Mobile API API Monstro Web API

73 BFF Problemas

74 BFF - Problemas APIs fragmentadas e em linguagens diferentes

75 BFF - Problemas Código duplicado!

76 BFF - Problemas Maior complexidade por cliente

77 Mas e o REST? Então é ele o problema?

78 Netflix API Gateway ios API API Geral Android API Web API (existe o Zuul na frente, mas isso é tema pra outra talk)

79 Até funciona, mas...

80 REST Problemas Parte 2

81 REST - Problemas Includes vs Endpoints em recursos relacionados

82 REST - Problemas Overfetching / Underfetching

83 REST - Problemas HATEOAS não diz nada sobre formato de Requisições e Respostas

84 REST - Problemas Não possui uma Especificação formal

85 REST - Problemas API pode rapidamente ficar gigantesca para atender a todos os clientes

86 REST - Problemas É difícil evoluir os dados sem saber o que os clientes de fato consomem

87 REST - Problemas Quanto mais complexa a API fica, menos eficaz é o Cache

88 GraphQL Graph Query Language

89 GraphQL Queries + Mutations + Documentação

90 GraphQL Única rota servindo de tunel para as queries

91 GraphQL POST /graphql HTTP/1.1 Host: meusite.dev Content-Type: application/graphql { } users { } name

92 GraphQL Dados da API são descritos

93 GraphQL type User { name: String website: String hobbies: [Hobby] }

94 GraphQL Um Request pede por dados específicos

95 { } user(name: "Ravan Scafi") { website, hobbies { name } }

96 GraphQL O retorno é exatamente o que foi requisitado

97 { } "user": { "website": " "hobbies": [ {"name": "PHP"}, {"name": "Viajar"} ] }

98 GraphiQL

99 GraphQL Mutations enviam dados para o servidor

100 GraphQL Especificação completa e documentada

101 GraphQL Dados podem evoluir com (maior) facilidade

102 GraphQL Problemas (achou que tinha bala de prata?)

103 GraphQL - Problemas Técnicas de cache são difíceis

104 GraphQL - Problemas Implementação pode ser complexa

105 GraphQL - Problemas Próprias (e novas) convenções

106 GraphQL - Problemas Upload de arquivos é hacky

107 GraphQL - Problemas Sem suporte* a HyperMedia

108 REST vs GraphQL Foco Implementação Clientes Cache REST Resiliência Evolutiva Parecidos Robusto GraphQL Performance Deve atender a especificação Diferentes Difícil

109 Conclusões

110 RPC Atende bem entre serviços e quando o foco é em operações.

111 GraphQL Garante performance de Clientes e permite evolução mais rápida.

112 REST Atende bem em CRUDs e onde as convenções HTTP possam ser aplicadas.

113 REST Se bem estruturado e a banda não é um problema, pode ser o mais robusto dos três

114 Dicas de Ouro

115 Você pode usar mais de uma solução!

116 (mas Por favor, não na mesma API)

117 Versionamento é sempre difícil

118 Não existe bala de prata.

119 Entenda seus dados e seus Usuários/Clientes

120 Empatia é a chave

121 Empatia é a capacidade de se identificar com outra pessoa, de sentir o que ela sente, de querer o que ela quer, de apreender do modo como ela apreende etc.

122

123 Estamos Contratando! Devs BackEnd, Devs FrontEnd, UXs

124 Agradecimentos Agradecimentos especiais a todos do SlidesCarnival que fizeram e disponibilizaram o template da apresentação gratuitamente.

STD29006 Sistemas Distribuídos

STD29006 Sistemas Distribuídos STD29006 Sistemas Distribuídos Serviços Web Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/std 22 de setembro

Leia mais

Desenvolvimento de Aplicações Distribuídas

Desenvolvimento de Aplicações Distribuídas Web Services RESTful Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01) Tópicos Apresentação da disciplina Introdução Desafios e características Arquitetura

Leia mais

Desenvolvimento Web II

Desenvolvimento Web II Desenvolvimento Web II Web Service PHP Rest Frameworks: Slim e Laravel (get/ post / put / delete) Gil Eduardo de Andrade Web Service Introdução: Um web service pode ser definido como uma tecnologia que

Leia mais

Instrutor: Eder Martins Franco

Instrutor: Eder Martins Franco Minicurso de REST Aula 1 fsdfsdf Introdução às RESTful APIs com PHP Instrutor: Eder Martins Franco 27 MAI 2017 Faculdade FUCAPI v1.0 Professor who? Programador e professor, notívago e viciado em café.

Leia mais

Desenvolvimento de Aplicações Distribuídas

Desenvolvimento de Aplicações Distribuídas SOA e Web Services Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01) Tópicos Apresentação da disciplina Introdução Desafios e características Arquitetura

Leia mais

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

Orquestração de microservices com REST na Americanas.com Orquestração de microservices com REST na Americanas.com Americanas.com Submarino.com Shoptime.com Soubarato.com Jeferson Leão Manutenção Escalabilidade Microservices Inovação O que acontece com a informação?

Leia mais

Webservices LEANDRO MENDES FERREIRA

Webservices LEANDRO MENDES FERREIRA Webservices LEANDRO MENDES FERREIRA Webservices - Agenda CONCEITOS RPC HTTP SOAP RESTFUL CONCEITOS Conceitos Básicos XML (extensible Markup Language) Liguagem de marcação para descrição de documentos de

Leia mais

Sistemas distribuídos. Prof. Emiliano Monteiro

Sistemas distribuídos. Prof. Emiliano Monteiro Sistemas distribuídos Prof. Emiliano Monteiro Serviços web (web services) Nos serviços web um cliente específico de uma determinada aplicação interage pela Internet com um serviço que possui uma interface

Leia mais

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

API. Lista de métodos da API do Funil de Vendas. Criação de Atividade. POST /v2/activities. Authorization: Basic { ACTIVITY } Exemplo: API Lista de métodos da API do Funil de Vendas Criação de Atividade POST /v2/activities Content-Type: application/json ACTIVITY Exemplo: POST /api/v2/activities HTTP/1.1 Host: sandbox.funildevendas.com.br

Leia mais

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

>>> RESTful API >>> Com Node.js e Restify. Name: Anderson Pimentel Date: 19 de Março de >>> RESTful API >>> Com Node.js e Restify Name: Anderson Pimentel Date: 19 de Março de 2018 apds.anderson@icomp.ufam.edu.br [~]$ _ [1/31] >>> Agenda 1. Introdução 2. Boas Práticas 3. Hands-on Ambiente

Leia mais

API SEBRAE MÉTODOS PARA INTEGRAÇÃO COM A PLATAFORMA Versão 1.0 Brasília 2017

API SEBRAE MÉTODOS PARA INTEGRAÇÃO COM A PLATAFORMA Versão 1.0 Brasília 2017 API SEBRAE MÉTODOS PARA INTEGRAÇÃO COM A PLATAFORMA Versão 1.0 Brasília 2017 Manual API SEBRAE HISTÓRICO DE VERSÕES Data Versão Descrição Autor 17/01/2017 1.0 Criação Cast Group Sumário 1 INTRODUÇÃO...5

Leia mais

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

Web Services REST. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula

Leia mais

10 atributos de uma API de sucesso

10 atributos de uma API de sucesso 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

Leia mais

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

Redes de Computadores e Aplicações Camada de aplicação IGOR ALVES Redes de Computadores e Aplicações Camada de aplicação IGOR ALVES Camada de aplicação Um protocolo da camada de aplicação define como processos de uma aplicação, que funcionam em sistemas finais diferentes,

Leia mais

Coletando dados utilizando a API do Zabbix com PHP e JSON

Coletando dados utilizando a API do Zabbix com PHP e JSON Coletando dados utilizando a API do Zabbix com PHP e JSON INTRODUÇÃO: O Zabbix possui uma limitação quanto à montagem de painéis a serem utilizados por pessoas que não estão acostumadas a utilizar a sua

Leia mais

SERVIÇO CONTRATO Especificação das operações de Serviço

SERVIÇO CONTRATO Especificação das operações de Serviço SERVIÇO Especificação das operações de Serviço 1.0 01/07/2014 1 de 8 Histórico de Revisões Data Versão Descrição Elaboração Inicial da especificação da operação de serviço 17/06/2014 0.1 ImportarArquivoContratoCCEAL.

Leia mais

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: CDC. Produto: CDC Simplificada (Juridica) Versão: 1.0. Autor: Angelo Bestetti Junior

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: CDC. Produto: CDC Simplificada (Juridica) Versão: 1.0. Autor: Angelo Bestetti Junior Manual de Integração Tecnologia: WebServices SOAP XML Área: CDC Produto: CDC Simplificada (Juridica) Versão: 1.0 Autor: Angelo Bestetti Junior Conteúdo Introdução... 3 Considerações Iniciais... 4 Privacidade...

Leia mais

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

Web Services. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul Web Services Professor: Ricardo Luis dos Santos IFSUL 2015 Rápida revisão da última aula 3 Rápida revisão da última aula 1 Listar o filme com o id 475 2 Listar todos os filmes com o título que inicia com

Leia mais

EA975 - Laboratório de Engenharia de Software

EA975 - Laboratório de Engenharia de Software EA975 - Laboratório de Engenharia de Software Turmas K/L - 2017 Aula 1 O que vamos desenvolver? Vamos desenvolver uma aplicação distribuída, empregando a arquitetura 3-Tier segundo o estilo REST/HTTP (Respresentational

Leia mais

Principais conceitos de CORBA

Principais conceitos de CORBA Principais conceitos de CORBA Tecgraf PUC-Rio fevereiro de 2011 Common Object Request Broker Architecture Uma arquitetura aberta para o desenvolvimento de aplicações distribuídas em um ambiente multilinguagem

Leia mais

Universidade Federal Fluminense Mestrado em Sistemas de Telecomunicações. Disciplina: Fundamentos de Sistemas Multimídia.

Universidade Federal Fluminense Mestrado em Sistemas de Telecomunicações. Disciplina: Fundamentos de Sistemas Multimídia. Universidade Federal Fluminense Mestrado em Sistemas de Telecomunicações Disciplina: Fundamentos de Sistemas Multimídia Web Services Aluno: Leonardo Severo Alves de Melo leonardo.severo@ig.com.br Introdução

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Camada de Aplicação HTTP FTP SMTP Slide 1 Mensagem de Requisição HTTP linha de pedido (comandos GET, POST,HEAD ) linhas de cabeçalho Carriage return, line feed indica fim da mensagem

Leia mais

Desenvolvimento Web. Introdução Geral. Prof. Vicente Paulo de Camargo

Desenvolvimento Web. Introdução Geral. Prof. Vicente Paulo de Camargo Introdução Geral Prof. Vicente Paulo de Camargo Web e Internet A Internet é uma rede de computadores que conecta milhões de computadores Se comunicam através do protocolos específicos A Web é uma forma

Leia mais

Redes de Computadores

Redes de Computadores Prof. Universidade Federal de Mato Grosso do Sul brivaldo@facom.ufms.br 18 de maio de 2017 Visão Geral 1 Visão Geral 2 3 4 Web e o HTTP Relembrando rapidamente, página web é construída com objetos um objeto

Leia mais

Ricardo R. Lecheta. Novatec

Ricardo R. Lecheta. Novatec Ricardo R. Lecheta Novatec Sumário Agradecimentos...11 Sobre o autor...12 Prefácio...13 Capítulo 1 Introdução...14 1.1 Introdução ao Node.js... 14 1.2 A linguagem JavaScript... 14 1.3 Arquitetura não

Leia mais

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

Conceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON) Márcio Koch 1 Currículo Formado na FURB em Ciência da Computação Pós graduado em Tecnologias para o desenvolvimento de aplicações web Mestrando em Computação Gráfica na UDESC Arquiteto de software na Senior

Leia mais

EA975 - Laboratório de Engenharia de Software

EA975 - Laboratório de Engenharia de Software EA975 - Laboratório de Engenharia de Software Turmas K/L - 2017 Aula 8 Vamos inicialmente especificar com mais detalhes o termo "recurso" utilizado no estilo arquitetural REST. Em REST, recursos são uma

Leia mais

Web services. Um web service é qualquer software que está disponível através da Internet através de uma interface XML.

Web services. Um web service é qualquer software que está disponível através da Internet através de uma interface XML. Web services Um web service é qualquer software que está disponível através da Internet através de uma interface XML. XML é utilizado para codificar toda a comunicação de/para um web service. Web services

Leia mais

Informática Parte 26 Prof. Márcio Hunecke

Informática Parte 26 Prof. Márcio Hunecke Escriturário Informática Parte 26 Prof. Márcio Hunecke Informática REST A Representational State Transfer (REST), em português Transferência de Estado Representacional, é um estilo de arquitetura que

Leia mais

Web Services. Tópicos. Introdução (1/3) CONTEXTO HISTÓRICO WEB SERVICES Conclusões

Web Services. Tópicos. Introdução (1/3) CONTEXTO HISTÓRICO WEB SERVICES Conclusões Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Programa de Pós-Graduação em Ciência da Computação Web Services Conceitual Juliano Moraes, Marcus Breda, Paulo Gil, Rafael

Leia mais

Ricardo Couto Antunes da Rocha 2005 Ricardo Couto Antunes da Rocha

Ricardo Couto Antunes da Rocha 2005 Ricardo Couto Antunes da Rocha Programação com Sockets Ricardo Couto Antunes da Rocha rcarocha@inf.ufg.br 2005 Ricardo Couto Antunes da Rocha Parâmetros de protocolos Objetivo do protocolo Protocolo de transporte: TCP ou UDP Porta (servidora!):

Leia mais

REST RESTfulWeb Services JAX-RS

REST RESTfulWeb Services JAX-RS Web Services REST Web Service Serviço oferecido por um sistema que pode ser acessado diretamente por outro sistema desenvolvido em qualquer tecnologia através de uma rede como a internet. Cada plataforma

Leia mais

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

Aula 4 Arquitetura de software na Web atual: AJAX e Ajax. Prof: Dra. Renata Pontin de Mattos Fortes SCE 0265 ICMC-USP Aula 4 Arquitetura de software na Web atual: AJAX e Ajax Prof: Dra. Renata Pontin de Mattos Fortes Aluno PAE: Willian Massami Watanabe 1 Introdução O que é AJAX? 2 Introdução O que é

Leia mais

Python para web com Flask. #PythonAmazonas

Python para web com Flask. #PythonAmazonas Python para web com Flask #PythonAmazonas @marcosptf Be Free. KDE About me @marcosptf pytero -> Grupy-SP phpzero -> PHPSP javero -> NetCat 2/48 Be Free. KDE Flask? O que é Flask? Flask é um microframework

Leia mais

SRSAT Sistema de Registro de Modelos Equipamentos SAT Ambiente de Testes

SRSAT Sistema de Registro de Modelos Equipamentos SAT Ambiente de Testes GOVERNO DO ESTADO DE SÃO PAULO SECRETARIA DA FAZENDA COORDENADORIA DA ADMINISTRAÇÃO TRIBUTÁRIA DIRETORIA DE INFORMAÇÕES SRSAT Sistema de Registro de Modelos Equipamentos SAT Ambiente de Testes Webservice

Leia mais

Globalcode Open4education. Trilha Ruby. Sergio Lima Ruby Developer

Globalcode Open4education. Trilha Ruby. Sergio Lima Ruby Developer Trilha Ruby Sergio Lima Ruby Developer Uma App Ruby On Rails Integrada com GraphQL A Linguagem do Facebook para APIs por SERGIO LIMA RUBY DEVELOPER Systems Analyst / Developer /sergiosouzalima #rubydev.rb

Leia mais

Invocação Remota. Prof. Leonardo Barreto Campos. 1/29

Invocação Remota. Prof. Leonardo Barreto Campos.   1/29 Invocação Remota Prof. Leonardo Barreto Campos 1/29 Sumário Introdução Chamada de Procedimento Remoto Invocação a Método Remoto Leitura Complementar Bibliografia 2/29 Introdução Essa aula trata como os

Leia mais

Transferência de Arquivo: Protocolo FTP

Transferência de Arquivo: Protocolo FTP Para iniciar uma sessão FTP (File Transfer Protocol) típica e acessar uma conta, o usuário deve fornecer uma identificação e uma senha; Após a identificação o usuário pode realizar operações de transferência

Leia mais

Criando e consumindo Web service REST com PHP e JSON. Palestrante: Weiberlan Garcia

Criando e consumindo Web service REST com PHP e JSON. Palestrante: Weiberlan Garcia Criando e consumindo Web service REST com PHP e JSON Palestrante: Weiberlan Garcia Weiberlan Garcia Consultor de Software Livre, trabalha na empresa Ambiente Livre Tecnologia. Desempenha funções de análise,

Leia mais

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

Uso da Internet. Disciplina: Gestão da Tecnologia de Sistemas. Professor: Thiago Silva Prates Uso da Internet Disciplina: Gestão da Tecnologia de Sistemas Professor: Thiago Silva Prates Uso da Internet nos negócios Com a evolução dos Sistemas de Informações nas organizações, da melhoria na infraestrutura,

Leia mais

API SEBRAE. Versão 1.2

API SEBRAE. Versão 1.2 API SEBRAE Versão 1.2 Brasília 2016 Manual API SEBRAE HISTÓRICO DE VERSÕES Data Versão Descrição Autor 20/04/2015 1.0 Criação Via Appia Informática 08/07/2015 1.1 Melhorias Via Appia Informática 10/12/2016

Leia mais

INTRODUÇÃO. RPC x RMI

INTRODUÇÃO. RPC x RMI 1 INTRODUÇÃO RPC x RMI 2 INTRODUÇÃO RPC Remote procedure call Este termo é utilizado para aplicativos clientes que fazem normalmente chamadas a procedimentos remotos que estão em outro processo e hosts.

Leia mais

API Documentation. Release Igor Morse

API Documentation. Release Igor Morse API Documentation Release 1.0.0 Igor Morse fev 10, 2019 Getting Started: 1 O que é a API do Automação-IOT? 3 1.1 Guia Básico............................................... 3 1.2 FAQ....................................................

Leia mais

Manual Direct100 API V2 RICCARDO BARANA

Manual Direct100 API V2 RICCARDO BARANA Manual Direct100 API V2 RICCARDO BARANA AVISO A versão com o URL-base https://direct100.inesting.com/... da API será descontinuada no dia 27 de março de 2019. Recomendamos aos novos clientes que utilizem

Leia mais

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

API icontrato. Versão 1.0. Para ajuda e informações, abra um chamado pelo API icontrato Versão 1.0 Criamos essa API para integrar qualquer sistema com o icontrato. A comunicação do sistema do cliente para o icontrato terá um Header nomeado x-token para servir de autenticação,

Leia mais

Dicas & truques é uma iniciativa InnoDev com o foco na divulgação e promoção do Talento Angolano e fundamentalmente a partilha do conhecimento com

Dicas & truques é uma iniciativa InnoDev com o foco na divulgação e promoção do Talento Angolano e fundamentalmente a partilha do conhecimento com Dicas & truques é uma iniciativa InnoDev com o foco na divulgação e promoção do Talento Angolano e fundamentalmente a partilha do conhecimento com estudantes, profissionais e aos amantes da leitura. Ainda

Leia mais

GraphQL. o que, como e quando. QCon SP 2018

GraphQL. o que, como e quando. QCon SP 2018 GraphQL o que, como e quando QCon SP 2018 Introdução pessoal Problemas de APIs REST Soluções GraphQL Caso: GitHub Caso: Cartão Elo Agenda - Desenvolvedor desde os 9 anos - Web desde 1998 (Perl, CGI ) -

Leia mais

Ademir C. Gabardo. Novatec

Ademir C. Gabardo. Novatec Ademir C. Gabardo Novatec Copyright 2017 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer

Leia mais

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

Arquitetura da World Wide Web. WWW: Histórico. WWW: Usos. WWW: Histórico. WWW Tecnologias Fundamentais. Comércio Eletrônico na WWW Arquitetura da World Wide Web World Wide Web Sistema de informação em escala global acessível em tempo real através de redes de computadores como a Internet. Comércio Eletrônico na WWW Wagner Meira Jr.,

Leia mais

Web Services REST JAX-RS

Web Services REST JAX-RS Web Services REST JAX-RS Professor: Ricardo Luis dos Santos IFSUL 2015 Agenda Principais tecnologias envolvidas Testando os serviços desenvolvidos JAX-RS Principais anotações JAX-RS Principais anotações

Leia mais

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP Cleber de F. Ferreira¹, Roberto Dias Mota¹. ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil cleberferreirasi@hotmail.com, motaroberto@hotmail.com Resumo.

Leia mais

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

Raspando dados. O maravilhoso mundo da multidão de informações. pedro belasco - cromatica - cdc W3C - Open Data Raspando dados O maravilhoso mundo da multidão de informações pedro belasco - cromatica - cdc 2010 - W3C - Open Data 1 Parte 1, Mas, afinal, que diabos é uma página? Arquitetura da Internet, como computadores

Leia mais

Estruturas de Comunicação de Dados Aula 3 Camadas de Aplicação e Transporte

Estruturas de Comunicação de Dados Aula 3 Camadas de Aplicação e Transporte Estruturas de Comunicação de Dados Aula 3 Camadas de Aplicação e Transporte Escola Maria Eduarda Ramos de Barros Curso técnico em redes de computadores Carpina - PE Roteiro Aplicações de Rede Transporte

Leia mais

Desenvolvimento Web. [Versão 5 Maio/2019] Professor Emiliano S. Monteiro

Desenvolvimento Web. [Versão 5 Maio/2019] Professor Emiliano S. Monteiro Desenvolvimento Web [Versão 5 Maio/2019] Professor Emiliano S. Monteiro API REST (PHP) Professor Emiliano S. Monteiro API REST Significa Representation State Transfer. É um estilo de desenvolvimento ou

Leia mais

Minicurso Web Services com PHP

Minicurso Web Services com PHP Minicurso Vinícius Costa de Souza viniciuscs@unisinos.br http://www.inf.unisinos.br/~vinicius julho de 2005 Apresentações Nome Conhecimentos sobre Web Services Conhecimentos sobre PHP Expectativas referentes

Leia mais

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

REST. Representational State Transfer. É um estilo arquitetural usado por muitas aplicações Web para estender as suas funcionalidades. REST Representational State Transfer É um estilo arquitetural usado por muitas aplicações Web para estender as suas funcionalidades. Não é um padrão. Exemplo ASP.NET Web API namespace WebAPIApp.Models

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores HTTP Prof. Thiago Dutra Agenda Definição de HTTP Hipertexto Características do HTTP O HTTP e a Web Conexões HTTP Mensagens HTTP Cookies Caches Web GET Condicional

Leia mais

Redes de Computadores I. Sockets e Arquitetura HTTP

Redes de Computadores I. Sockets e Arquitetura HTTP v.2016 Redes de Computadores I Sockets e Arquitetura HTTP Prof. Ricardo Couto A. da Rocha rcarocha@ufg.br UFG Regional Catalão HTTP - O Servidor Web Prof. Dr. Ricardo Couto Antunes da Rocha - Depto. de

Leia mais

API - Webservices. Grupo Cortez de Lima

API - Webservices. Grupo Cortez de Lima API - Webservices Grupo Cortez de Lima Introdução A API Web Services Cortez de Lima foi desenvolvida para facilitar a integração de outros sistemas ao nosso sistema próprio de Publicações Eletrônicas através

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Camada de Aplicação Slide 1 Protocolo da Camada de Aplicação Tipos de mensagens trocadas; A sintaxe dos vários tipos de mensagens; A semântica dos campos; Regras para determinar quando

Leia mais

PROTÓTIPO DE UM SISTEMA DE IMPORTAÇÃO PARA UMA AGÊNCIA DE TRANSPORTES INTERNACIONAIS

PROTÓTIPO DE UM SISTEMA DE IMPORTAÇÃO PARA UMA AGÊNCIA DE TRANSPORTES INTERNACIONAIS Universidade Regional de Blumenau Centro de Ciências Exatas e Naturais Bacharelado em Ciências da Computação Estágio supervisionado de Conclusão de Curso PROTÓTIPO DE UM SISTEMA DE IMPORTAÇÃO PARA UMA

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução App de exemplo Implementação do exemplo Testes realizados

Leia mais

Web Services. Integração de aplicações na Web. Sistemas Distribuídos

Web Services. Integração de aplicações na Web. Sistemas Distribuídos Web Services Integração de aplicações na Web Integração de Aplicações na Web Interoperação entre ambientes heterogêneos desafios diversidade de componentes: EJB, CORBA, DCOM... diversidade de linguagens:

Leia mais

com Repositórios Abertos

com Repositórios Abertos Integração do Moodle com Repositórios Abertos Liane Tarouco Marcelo Schmitt PGIE/CINTED Univ. Federal Rio Grande do Sul Brasil LACLO 2010 Autoria de conteúdo educacional Crescimento de educação a distância

Leia mais

API SEBRAE MÉTODOS PARA INTEGRAÇÃO COM A BIS. Versão 1.0

API SEBRAE MÉTODOS PARA INTEGRAÇÃO COM A BIS. Versão 1.0 API SEBRAE MÉTODOS PARA INTEGRAÇÃO COM A BIS Versão 1.0 Brasília 2016 Manual API SEBRAE HISTÓRICO DE VERSÕES Data Versão Descrição Autor 11/07/2016 1.0 Criação Via Appia Informática SUMÁRIO 1 INTRODUÇÃO...

Leia mais

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

GUIA API BTB /04/2019 INFORMAÇÃO PÚBLICA 05/04/019 SUMÁRIO 1 HISTÓRICO DE VERSÕES... 4 INTRODUÇÃO... 5 3 VISÃO GERAL... 5 3.1 Verbos HTTP API - BTB... 5 3. Uso do POST... 6 3.3 Uso do GET... 7 3.4 Endpo... 7 3.5 Restrições... 7 4 ENDEREÇOS DA

Leia mais

L A C Laboratory for Advanced Collaboration

L A C Laboratory for Advanced Collaboration Publicação de Dados Governamentais no Padrão Linked Data 3.1 Fundamentos de SPARQL Karin Breitman José Viterbo Edgard Marx Percy Salas L A C Laboratory for Advanced Collaboration Objetivo deste módulo

Leia mais

Integração REST Text2Speech Versão 1.1

Integração REST Text2Speech Versão 1.1 1 Integração REST Text2Speech Versão 1.1 2 Índice de Conteúdos Introdução Page. 3 Plataforma Técnica Petição envíos de mensagens de voz Page. 4 Petição JSON Page. 4 Exemplo solicitação CURL Page. 5 Exemplo

Leia mais

API olx.com.br. Utilizando o protocolo OAuth 2.0

API olx.com.br. Utilizando o protocolo OAuth 2.0 API olx.com.br Utilizando o protocolo OAuth 2.0 Resumo Este documento descreve como utilizar o protocolo oauth 2.0 como forma de autenticação na API olx.com.br através de uma aplicação web. OAuth 2.0 é

Leia mais

Manual de Integração do icarta

Manual de Integração do icarta Manual de Integração do icarta Versão 1.00 Abril 2014 Controle de Versões Versão Data 1.00 16/04/2014 1. Introdução Este documento tem por objetivo a definição das especificações e critérios técnicos necessários

Leia mais

Web Services REST e JSON

Web Services REST e JSON Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula

Leia mais

Comunicação. capítulo

Comunicação. capítulo Comunicação capítulo 4 Camadas de protocolos: Modelo OSI Camadas de protocolos: Mensagem Protocolos de baixo nível Estas camadas implementam as funções básicas que envolvem uma rede de computadores: Física:

Leia mais

Java para WEB com Struts 2 e Hibernate

Java para WEB com Struts 2 e Hibernate Java para WEB com Struts 2 e Hibernate Aula 01 http://fernandoanselmo.orgfree.com fernando.anselmo74@gmail.com Apresentação Fernando Anselmo fernando.anselmo74@gmail.com 25 anos na área de Desenvolvimento

Leia mais

ALUNO: RONI FABIO BANASZEWSKI

ALUNO: RONI FABIO BANASZEWSKI Model-View-Controller ALUNO: RONI FABIO BANASZEWSKI Objetivo Separar dados ou lógica de negócios (Model) da interface do usuário (View) e do fluxo da aplicação (Control) A idéia é permitir que uma mesma

Leia mais

Arquitetura de sistemas distribuídos

Arquitetura de sistemas distribuídos Arquitetura de sistemas distribuídos 3. Comunicação nos Sistemas Distribuídos 3.1.Introdução aos modelos de comunicação 3.2 Modelo Cliente-Servidor 3.3.Comunicação através de Sockets 3.3 Chamada a procedimento

Leia mais

Configurando a Autenticação de Requisições HTTP com o CE Executando o ACNS e o Microsoft Active Directory

Configurando a Autenticação de Requisições HTTP com o CE Executando o ACNS e o Microsoft Active Directory Configurando a Autenticação de Requisições HTTP com o CE Executando o ACNS 5.0.1 e o Microsoft Active Directory Índice Introdução Pré-requisitos Requisitos Componentes Utilizados Convenções Configurar

Leia mais

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... ÍNDICE 1 INTRODUÇÃO... 3 2 CERTIFICADO DE SEGURANÇA SSL... 3 3 AUTENTICAÇÃO... 4 4 WEB METHOD: LOGIN... 5 5 WEB METHOD: LISTBONDCODES... 6 6 WEB METHOD: LISTBONDCODESCSV... 6 7 WEB METHOD: LISTTITULOSPUBLICOS...

Leia mais

INE Introdução a S is temas Multiagente Modelo de Referência FIPA

INE Introdução a S is temas Multiagente Modelo de Referência FIPA INE602200 Introdução a S is temas Multiagente Modelo de Referência FIPA Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br URL: www.inf.ufsc.br/~silveira Importância de Padrões em SMA

Leia mais

Sistemas Distribuídos Arquiteturas Middlewares

Sistemas Distribuídos Arquiteturas Middlewares Sistemas Distribuídos Arquiteturas s Arquitetura Arquitetura de um sistema é sua estrutura em termos dos componentes e seus relacionamentos Objetivo: garantir que a estrutura satisfará as demandas presentes

Leia mais

Desenvolvimento de uma ferramenta para organização e gerenciamento de atividades de docentes

Desenvolvimento de uma ferramenta para organização e gerenciamento de atividades de docentes Universidade Federal de Uberlândia - UFU Faculdade de Computação Bacharelado em Sistemas de Informação Desenvolvimento de uma ferramenta para organização e gerenciamento de atividades de docentes Rafael

Leia mais

Protocolo HTTP. - Características. - Modelo Requisição/Resposta. - Common Gateway Interface (CGI)

Protocolo HTTP. - Características. - Modelo Requisição/Resposta. - Common Gateway Interface (CGI) Protocolo HTTP - Características - Modelo Requisição/Resposta - Common Gateway Interface (CGI) Características Hypertext Transfer Protocol (HTTP) Protocolo utilizado para transferir documentos de hipertexto

Leia mais

Centro Universitário Metodista Benne1 Rio de Janeiro, Dezembro de 2009. Rafael Polo e Sabrina Arêas

Centro Universitário Metodista Benne1 Rio de Janeiro, Dezembro de 2009. Rafael Polo e Sabrina Arêas Centro Universitário Metodista Benne1 Rio de Janeiro, Dezembro de 2009 Rafael Polo e Sabrina Arêas Contexto 60 s - Primeiros sistemas de informação corporativos. 70 s Desenvolvimento e comercialização

Leia mais

Direct100 API Manual de utilização da API Direct100

Direct100 API Manual de utilização da API Direct100 Direct100 API Manual de utilização da API Direct100 Manual de utilização da API Direct100 página 02 Índice Índice... 2 Introdução... 3 Envio de sms... 3 Resposta ao envio de sms... 4 Consulta de saldo...

Leia mais

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

Evolução guiada por APIs. com REST para modernizar seu legado Evolução guiada por APIs Option #2 híbrida Criando uma arquitetura com REST para modernizar seu legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução App de exemplo Implementação do exemplo Testes realizados

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Chamada Remota de Procedimento março de 2019 RPC: motivação A B send (B, &pedido) receive (B, &resposta) como facilitar esse padrão tão comum? encapsulamento de detalhes de comunicação criação, envio e

Leia mais

Prática da Disciplina de Sistemas Distribuídos Web Services REST IFMA DAI Professor Mauro Lopes C. Silva

Prática da Disciplina de Sistemas Distribuídos Web Services REST IFMA DAI Professor Mauro Lopes C. Silva 1. O que é REST e RESTful? Prática da Disciplina de Sistemas Distribuídos Web Services REST IFMA DAI Professor Mauro Lopes C. Silva Nos últimos tempos, uma forte tendência vem mudando a forma de pensar

Leia mais

Programação para Web

Programação para Web Colégio Estadual João Manoel Mondrone Ensino Fundamental, Médio, Profissional e Norm Técnico em Informática Programação para Web Profª Ana Paula Mandelli anapaula_mandelli@hotmail.com O que é a COMUNICAÇÃO?

Leia mais

Manual de Integração Consulta Automática de NFS-e

Manual de Integração Consulta Automática de NFS-e Manual de Integração Consulta Automática de NFS-e Versão 2.1 Junho de 2014 1 Controle de Alterações Nome Data Thaís Oliveira 10/11/2013 Thaís Oliveira 03/01/2014 Thaís Oliveira 18/06/2014 Versão Observação

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Aula 1 REST em Java JAX-RS (Jersey) Material de suporte às aulas de Sistemas Distribuídos Copyright DI FCT/ UNL / 1 REST : REPRESENTATIONAL STATE TRANSFER Padrão arquitetural para

Leia mais

Capítulo 2. Camada de aplicação

Capítulo 2. Camada de aplicação INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIADO RIO GRANDE DO NORTE IFRN Disciplina: Arquitetura de redes de computadores e Tecnologia de Implementação de Redes Professor: M. Sc. Rodrigo Ronner T.

Leia mais

Guia de Integração Gateway de Pagamentos Redunicre. Versão 1.1

Guia de Integração Gateway de Pagamentos Redunicre. Versão 1.1 Guia de Integração Gateway de Pagamentos Redunicre Versão 1.1 Índice Introdução...4 Contactos...4 Integração com a aplicação do comerciante...5 Inicializar pagamento web... 7 Redirecionar para a página

Leia mais

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

Integração de sistemas utilizando Web Services do tipo REST Integração de sistemas utilizando Web Services do tipo REST Jhonatan Wilson Aparecido Garbo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil jhowgarbo@gmail.com jaime@unipar.br

Leia mais

Cassio Greco. Fundador da Conta Simples

Cassio Greco. Fundador da Conta Simples Cassio Greco Fundador da Conta Simples Porquê usar Go em serviços financeiros Agenda 1. Uma básica introdução sobre Go 2. Porquê e como usamos Go na Conta Simples 3. Resolvendo problemas complexos em Go

Leia mais

Arquitetura de aplicativos para Smart Devices

Arquitetura de aplicativos para Smart Devices Arquitetura de aplicativos para Smart Devices O problema que vamos resolver será a construção de um backend para uma imobiliária. Ele deve ter uma parte web e outra para Smart Devices, para ser utilizada

Leia mais

Construindo Microservices Auto-curáveis com Spring Cloud e Netflix OSS. Rodrigo Cândido da

Construindo Microservices Auto-curáveis com Spring Cloud e Netflix OSS. Rodrigo Cândido da Construindo Microservices Auto-curáveis com Spring Cloud e Netflix OSS Rodrigo Cândido da Silva @rcandidosilva About Me Software Architect http://integritastech.com JUG Leader do GUJavaSC http://gujavasc.org

Leia mais