Este documento apresenta os principais conceitos do protocolo HTTP e da arquitetura REST. Explica que o HTTP define operações através de verbos como GET, POST, PUT e DELETE em recursos endereçados por URLs. A resposta contém um código de status e os dados são representados em formatos como JSON ou XML. O objetivo é entender como as ferramentas abstraem esses conceitos fundamentais para comunicação entre sistemas.
Integrando sua App ao Mundo via REST/JSONMario Guedes
O documento discute a integração de aplicativos com o mundo exterior usando REST e JSON. Ele explica os conceitos de REST, JSON e HTTP e como eles podem ser usados para criar APIs que permitem o compartilhamento de dados entre sistemas heterogêneos. Também fornece exemplos práticos de como consumir APIs REST existentes usando a biblioteca REST Client do Delphi.
Nova Infraestrutura JSON: System.JSON na prática Mario Guedes
O Delphi 10 Seattle passa a oferecer um novo framework para se trabalhar com JSON.
Esta apresentação apresenta o JSON de forma geral e os exemplos podem ser baixados do GitHub.
O documento apresenta os conceitos básicos do protocolo HTTP, como requisições, respostas, métodos, cabeçalhos e códigos de status. Também discute boas e más práticas na construção de APIs RESTful de acordo com os padrões do HTTP, como usar corretamente métodos, URLs, cache e negociação de conteúdo.
Seguindo o raciocínio de que "o processamento mais rápido é aquele que não é feito" faz-se conveniente uma estratégia de cacheamento de resultados de processamento. Mostrarei uma abordagem possível neste sentido, utilizando o REDIS, em uma arquitetura baseada em micro serviços.
Este documento resume uma apresentação sobre bancos de dados NoSQL. Ele discute os paradigmas orientado a documentos, chave-valor e coluna, com foco em MongoDB, Redis e Cassandra. Também descreve como a Contact Studio migrou de SQL para uma arquitetura de microsserviços usando vários bancos NoSQL.
Uma versão um pouco mais leve e sem referências a tecnologias de backend, apresentando para a galera de frontend os principais conceitos de APIs RESTful e algumas ferramentas úteis para o dia-a-dia.
Para ver os slides com comentários descritivos, acesse: https://docs.google.com/presentation/d/1fcvYVSXVsgGsnjTJZHBxVig8d0iVOENcuPvfkfnuG4M/edit?usp=sharing
Delphi Conference 2011 - Desmistificando as Expressões RegularesMario Guedes
O documento discute o conceito e uso de expressões regulares, começando por definir o que são expressões regulares e seus usos principais. Em seguida, explica os elementos básicos para aplicar expressões regulares, como padrões, texto e modificadores. Por fim, resume diversos recursos avançados de expressões regulares como agrupamentos, alternâncias, quantificadores e classes de caracteres.
O documento discute conceitos fundamentais de arquitetura web e REST. Ele explica como HTTP funciona para transferir dados entre clientes e servidores e como REST usa verbos HTTP e URLs para acessar recursos de forma uniforme. Também apresenta JSON como formato para representar dados e componentes do Delphi que facilitam o consumo de APIs REST.
Integrando sua App ao Mundo via REST/JSONMario Guedes
O documento discute a integração de aplicativos com o mundo exterior usando REST e JSON. Ele explica os conceitos de REST, JSON e HTTP e como eles podem ser usados para criar APIs que permitem o compartilhamento de dados entre sistemas heterogêneos. Também fornece exemplos práticos de como consumir APIs REST existentes usando a biblioteca REST Client do Delphi.
Nova Infraestrutura JSON: System.JSON na prática Mario Guedes
O Delphi 10 Seattle passa a oferecer um novo framework para se trabalhar com JSON.
Esta apresentação apresenta o JSON de forma geral e os exemplos podem ser baixados do GitHub.
O documento apresenta os conceitos básicos do protocolo HTTP, como requisições, respostas, métodos, cabeçalhos e códigos de status. Também discute boas e más práticas na construção de APIs RESTful de acordo com os padrões do HTTP, como usar corretamente métodos, URLs, cache e negociação de conteúdo.
Seguindo o raciocínio de que "o processamento mais rápido é aquele que não é feito" faz-se conveniente uma estratégia de cacheamento de resultados de processamento. Mostrarei uma abordagem possível neste sentido, utilizando o REDIS, em uma arquitetura baseada em micro serviços.
Este documento resume uma apresentação sobre bancos de dados NoSQL. Ele discute os paradigmas orientado a documentos, chave-valor e coluna, com foco em MongoDB, Redis e Cassandra. Também descreve como a Contact Studio migrou de SQL para uma arquitetura de microsserviços usando vários bancos NoSQL.
Uma versão um pouco mais leve e sem referências a tecnologias de backend, apresentando para a galera de frontend os principais conceitos de APIs RESTful e algumas ferramentas úteis para o dia-a-dia.
Para ver os slides com comentários descritivos, acesse: https://docs.google.com/presentation/d/1fcvYVSXVsgGsnjTJZHBxVig8d0iVOENcuPvfkfnuG4M/edit?usp=sharing
Delphi Conference 2011 - Desmistificando as Expressões RegularesMario Guedes
O documento discute o conceito e uso de expressões regulares, começando por definir o que são expressões regulares e seus usos principais. Em seguida, explica os elementos básicos para aplicar expressões regulares, como padrões, texto e modificadores. Por fim, resume diversos recursos avançados de expressões regulares como agrupamentos, alternâncias, quantificadores e classes de caracteres.
O documento discute conceitos fundamentais de arquitetura web e REST. Ele explica como HTTP funciona para transferir dados entre clientes e servidores e como REST usa verbos HTTP e URLs para acessar recursos de forma uniforme. Também apresenta JSON como formato para representar dados e componentes do Delphi que facilitam o consumo de APIs REST.
Este documento fornece um resumo de um minicurso sobre a API Java Net para interagir com a internet. O minicurso aborda tópicos como o funcionamento da web, HTTPS, arquivos e streams, a API Java Net, baixar conteúdo da web, enviar formulários e ataques de força bruta. O objetivo é ensinar como desenvolver aplicações Java capazes de se comunicar com a internet.
Este documento resume os principais pontos sobre APIs RESTful. Em 3 frases:
RESTful APIs devem usar recursos HTTP como URIs e verbos HTTP para representar entidades e operações. Elas devem ser stateless e usar códigos HTTP para indicar sucesso ou falha de requisições. Seguir padrões como JSON API Spec permite criar APIs mais robustas e com recursos como paginação entre outros.
O documento discute os conceitos fundamentais por trás de APIs RESTful, como URIs, URLs, recursos, verbos HTTP e status HTTP. Também aborda as diferenças entre REST e SOAP, destacando que REST não requer JSON e pode retornar qualquer formato de dados, enquanto promove a utilização de HATEOAS para fornecer links entre recursos.
O documento discute os princípios do REST e como implementá-lo corretamente usando HTTP. Primeiro, descreve vários estágios de maturidade de APIs, desde o uso inadequado de XML/JSON e verbos HTTP até a implementação completa do REST. Em seguida, explica como usar corretamente recursos, verbos HTTP, códigos de status e demais princípios do REST. Por fim, recomenda ferramentas como Restler e Laravel para desenvolver APIs RESTful de forma fácil e robusta.
O documento resume as principais features introduzidas nas versões Java 8, 9, 10 e 11, incluindo expressões lambda, Stream, Jshell, HTTP client e interferências de tipos. Também discute sobre microserviços, protocolo HTTP, códigos de status e versionamento de contrato de APIs.
Nessa apresentação eu proponho uma abordagem para desenvolvimento de uma aplicação Web que, com poucas extensões (todas dentro do escopo dos protocolos da própria Web), permite o seu uso também como uma API REST.
O documento discute como REST é fundamental para o futuro das aplicações web. Ele explica os principais conceitos de HTTP como protocolo stateless e síncrono e como REST utiliza os verbos e status codes do HTTP. Também discute como REST pode ser usado como camada web, de integração e serviços, com exemplos de cada caso. A conclusão é que REST é principalmente sobre simplicidade e possibilidades.
O documento discute a arquitetura REST e como implementá-la de forma RESTful. Ele explica os principais conceitos como recursos, identidade, interface uniforme e hipermídia. Também discute como implementar REST em Java usando JAX-RS e como frameworks como o Restfulie podem facilitar a criação de aplicações HATEOAS.
O documento discute os protocolos HTTP e FTP. Explica que o HTTP é usado para acessar dados na web através de requisições entre clientes e servidores, enquanto o FTP é usado para transferência de arquivos. Detalha os componentes, métodos, mensagens e transações dos protocolos.
REST vs GraphQL: A batalha das APIs pode ser resumida em 3 frases:
REST usa HTTP para recuperar recursos através de métodos como GET e POST, enquanto GraphQL permite que clientes solicitem somente os dados necessários através de consultas declarativas. Embora GraphQL elimine problemas como over-fetching, REST tem vantagens como cache e status codes HTTP mais claros.
REST e GraphQL são duas APIs populares. REST usa métodos HTTP como GET e POST para recuperar e enviar dados, enquanto GraphQL permite que os clientes solicitem exatamente os dados de que precisam através de uma única consulta. Embora GraphQL elimine problemas como over-fetching, REST tem vantagens como cache e monitoramento mais fácil.
1) Aplicações web permitem que clientes ao redor do mundo acessem recursos em servidores;
2) Servidores recebem solicitações de clientes e devolvem respostas, como páginas HTML ou arquivos;
3) Clientes fazem solicitações usando navegadores e protocolos como HTTP, enquanto servidores respondem usando linguagens como HTML.
Monitoramento de Aplicações Web Modernas com ZabbixAndré Déo
Demonstrar que com os recursos nativos da ferramenta, atrelados à desenvolvedores integrados com a equipe de operações (DevOps) é possível monitorar aplicações web modernas, que utilizam recursos como APIs, REST e JSON.
O documento discute os fundamentos da arquitetura web, incluindo a diferença entre clientes e servidores web, como eles se comunicam usando HTML e HTTP, e os métodos GET e POST. Também aborda conceitos como páginas estáticas e dinâmicas, URLs e o uso de servlets e CGI para gerar conteúdo dinâmico.
O documento descreve como o palestrante melhorou a performance de consultas no BigQuery em 50x ao migrar para a BigQuery Storage Read API e usar o formato de dados Apache Arrow. A apresentação também discute os protocolos gRPC e HTTP/2 e como eles melhoram a performance em comparação com a BigQuery REST API original.
[ATC] Testando sua API com HTTPARTY e Rodando em um CINathanael Silva
O documento discute testes de API, REST, protocolo HTTP e integração contínua. Explica o que é uma API e seus benefícios. Detalha os métodos HTTP, status codes e arquitetura REST. Discute a importância de testes de API e ferramentas como HTTParty e RSpec. Também aborda integração contínua com Jenkins.
Dicas para desenvolvedores que querem fazer uma Web rápida e divertida.
Explicações sobre HTTP, HTML, CSS, JavaScripts, ferramentas e bibliotecas que fazem nossa vida mais fácil
Segunda palestra da PHP Conference Brasil, falando sobre webservices, uma visão geral para quem quer começar a usar e métodos e estratégias para quem já os adota
Este documento fornece um resumo de um minicurso sobre a API Java Net para interagir com a internet. O minicurso aborda tópicos como o funcionamento da web, HTTPS, arquivos e streams, a API Java Net, baixar conteúdo da web, enviar formulários e ataques de força bruta. O objetivo é ensinar como desenvolver aplicações Java capazes de se comunicar com a internet.
Este documento resume os principais pontos sobre APIs RESTful. Em 3 frases:
RESTful APIs devem usar recursos HTTP como URIs e verbos HTTP para representar entidades e operações. Elas devem ser stateless e usar códigos HTTP para indicar sucesso ou falha de requisições. Seguir padrões como JSON API Spec permite criar APIs mais robustas e com recursos como paginação entre outros.
O documento discute os conceitos fundamentais por trás de APIs RESTful, como URIs, URLs, recursos, verbos HTTP e status HTTP. Também aborda as diferenças entre REST e SOAP, destacando que REST não requer JSON e pode retornar qualquer formato de dados, enquanto promove a utilização de HATEOAS para fornecer links entre recursos.
O documento discute os princípios do REST e como implementá-lo corretamente usando HTTP. Primeiro, descreve vários estágios de maturidade de APIs, desde o uso inadequado de XML/JSON e verbos HTTP até a implementação completa do REST. Em seguida, explica como usar corretamente recursos, verbos HTTP, códigos de status e demais princípios do REST. Por fim, recomenda ferramentas como Restler e Laravel para desenvolver APIs RESTful de forma fácil e robusta.
O documento resume as principais features introduzidas nas versões Java 8, 9, 10 e 11, incluindo expressões lambda, Stream, Jshell, HTTP client e interferências de tipos. Também discute sobre microserviços, protocolo HTTP, códigos de status e versionamento de contrato de APIs.
Nessa apresentação eu proponho uma abordagem para desenvolvimento de uma aplicação Web que, com poucas extensões (todas dentro do escopo dos protocolos da própria Web), permite o seu uso também como uma API REST.
O documento discute como REST é fundamental para o futuro das aplicações web. Ele explica os principais conceitos de HTTP como protocolo stateless e síncrono e como REST utiliza os verbos e status codes do HTTP. Também discute como REST pode ser usado como camada web, de integração e serviços, com exemplos de cada caso. A conclusão é que REST é principalmente sobre simplicidade e possibilidades.
O documento discute a arquitetura REST e como implementá-la de forma RESTful. Ele explica os principais conceitos como recursos, identidade, interface uniforme e hipermídia. Também discute como implementar REST em Java usando JAX-RS e como frameworks como o Restfulie podem facilitar a criação de aplicações HATEOAS.
O documento discute os protocolos HTTP e FTP. Explica que o HTTP é usado para acessar dados na web através de requisições entre clientes e servidores, enquanto o FTP é usado para transferência de arquivos. Detalha os componentes, métodos, mensagens e transações dos protocolos.
REST vs GraphQL: A batalha das APIs pode ser resumida em 3 frases:
REST usa HTTP para recuperar recursos através de métodos como GET e POST, enquanto GraphQL permite que clientes solicitem somente os dados necessários através de consultas declarativas. Embora GraphQL elimine problemas como over-fetching, REST tem vantagens como cache e status codes HTTP mais claros.
REST e GraphQL são duas APIs populares. REST usa métodos HTTP como GET e POST para recuperar e enviar dados, enquanto GraphQL permite que os clientes solicitem exatamente os dados de que precisam através de uma única consulta. Embora GraphQL elimine problemas como over-fetching, REST tem vantagens como cache e monitoramento mais fácil.
1) Aplicações web permitem que clientes ao redor do mundo acessem recursos em servidores;
2) Servidores recebem solicitações de clientes e devolvem respostas, como páginas HTML ou arquivos;
3) Clientes fazem solicitações usando navegadores e protocolos como HTTP, enquanto servidores respondem usando linguagens como HTML.
Monitoramento de Aplicações Web Modernas com ZabbixAndré Déo
Demonstrar que com os recursos nativos da ferramenta, atrelados à desenvolvedores integrados com a equipe de operações (DevOps) é possível monitorar aplicações web modernas, que utilizam recursos como APIs, REST e JSON.
O documento discute os fundamentos da arquitetura web, incluindo a diferença entre clientes e servidores web, como eles se comunicam usando HTML e HTTP, e os métodos GET e POST. Também aborda conceitos como páginas estáticas e dinâmicas, URLs e o uso de servlets e CGI para gerar conteúdo dinâmico.
O documento descreve como o palestrante melhorou a performance de consultas no BigQuery em 50x ao migrar para a BigQuery Storage Read API e usar o formato de dados Apache Arrow. A apresentação também discute os protocolos gRPC e HTTP/2 e como eles melhoram a performance em comparação com a BigQuery REST API original.
[ATC] Testando sua API com HTTPARTY e Rodando em um CINathanael Silva
O documento discute testes de API, REST, protocolo HTTP e integração contínua. Explica o que é uma API e seus benefícios. Detalha os métodos HTTP, status codes e arquitetura REST. Discute a importância de testes de API e ferramentas como HTTParty e RSpec. Também aborda integração contínua com Jenkins.
Dicas para desenvolvedores que querem fazer uma Web rápida e divertida.
Explicações sobre HTTP, HTML, CSS, JavaScripts, ferramentas e bibliotecas que fazem nossa vida mais fácil
Segunda palestra da PHP Conference Brasil, falando sobre webservices, uma visão geral para quem quer começar a usar e métodos e estratégias para quem já os adota
Semelhante a Entendendo HTTP para entender o REST (20)
4. Olá! Aqui é Mario Guedes!
• Artesão de Software desde 1999
• https://arrayof.io - mario@arrayof.io
• https://eugostododelphi.dev
• Participe do primeiro encontro presencial
• https://www.meetup.com/pt-BR/eugostododelphi/
5. Estamos contratando!
• Iniciando os meus trabalhos na TEx Tecnologia
• https://www.textecnologia.com.br
• https://jobs.solides.com/textecnologia/
6. Motivação
• As ferramentas de desenvolvimento, com suas bibliotecas e
frameworks, abstraem vários conceitos importantes e ainda bem que
é assim!
• Isso nos deixa alheios a esses conhecimentos que eventualmente nos
faz falta principalmente quando as coisas não funcionam direito.
• Daí a importância de nos aprofundarmos um pouco mais no tema
HTTP e REST e vermos como as coisas funcionam por “baixo do capô”.
7. Fontes do exemplo
• Os fontes do projeto que será apresentado está em:
https://github.com/ArrayOf/understanding_HTTP
8. Protocolo
• Na computação protocolo é uma convenção, ou seja, um conjunto de
regras bem definidas que possibilitam a conexão, comunicação e a
transferência de dados entre dois sistemas.
• Temos no nosso dia à dia o protocolo TCP/IP. Ela é onipresente e se
referem à dois protocolos:
• IP – que está na camada de rede
• TCP – que está na camada de transporte
• Sobre o protocolo TCP/IP trafegam os protocolos de aplicação que
possibilitam um software conversar com outro. Entre eles o nosso
HTTP.
9. REST
• “Um sistema complexo que funciona é, invariavelmente, considerado
como evoluído a partir de um simples que funcionava” - John Gall.
• REST não é protocolo de comunicação ou de aplicação.
• Mas sim um padrão de arquitetura que reaproveita conceitos do HTTP
e os estende.
• Um solução aderente ao padrão REST, independentemente da adoção
do protocolo HTTP, é dita como RESTful (com um “l” só, como em
beautiful)
10. REQUISIÇÃO
POST /teste HTTP/1.1#13#10
Host: localhost:8080#13#10
Content-Length: 20#13#10
#13#10
{“msg”: “Ola Mundo”}
Verbo
HTTP
Endereçamento
do Recurso
Versão do
Protocolo
Quebra
de Linha
Conteúdo
Linha
vazia
Cabeçalho
Request
Line
11. RESPOSTA
HTTP/1.1 200 OK#13#10
Server: Delphi#13#10
#13#10
Versão do
Protocolo Status Descrição
Quebra
de LinhaCabeçalho
Linha
vazia
Status
Line
Sem
conteúdo
12. REST: Verbo
• Na requisição HTTP é definido o verbo HTTP – que no REST será a
ação que será executada sobre o recurso
• Temos um conjunto limitado e bem definido de ações:
• GET: Recupera um item ou uma lista de itens
• POST: Solicita a criação de um novo item
• PUT: Solicita a modificação de um item já existente
• PATCH: Solicita a modificação parcial de um item já existente
• DELETE: Solicita a exclusão de um determinado item
• Existem outros verbos porém esses são os mais usuais equivalendo às
operações CRUD
13. REST: Recurso
• Na requisição também é definido o endereçamento do recurso que
será manipulado.
• Perceba que o que será feito já foi definido pelo verbo – aqui
definimos onde será feito
• Exemplos:
• GET /usuarios – Lista todos os usuários
• GET /usuarios/1234 – Recupera os dados do usuário de ID 1234
• POST /usuarios – Cria um novo usuário
• PUT /usuarios/1234 – Modifica os dados do usuário 1234
• DELETE /usuarios/1234 – Delete o usuário de ID 1234
14. REST: Parâmetros de execução
• Algumas operações precisam de parâmetros adicionais para serem executadas
corretamente.
• Chaves de acesso, paginação do resultado, filtro de dados são alguns exemplos.
• Os parâmetros podem ser passados da seguinte forma:
• Query string: Sequência de chave e valor na URL, após o sinal de interrogação e
separados por &
GET /usuarios?pagina=1&limite=10
• Cabeçalho: Sequência de chaves e valor no cabeçalho HTTP. Se não for um
cabeçalho padrão o ideal é iniciar por “X-”
X-Chave-Acesso: 1234567890
• Cookies: Uma forma de trafegar dados persistentes entre o cliente e o servidor.
Também vai no cabeçalho HTTP porém requer uma manipulação diferenciada
15. REST: Status HTTP
• Na resposta vêm um código de status que indica o resultado da
solicitação
• Existe uma tabela padrão porém – em termos de REST – ela pode ser
estendida para ter significados mais específicos
16. REST: Status HTTP
Sucesso:
• 200 – A solicitação foi atendida e possui conteúdo de retorno
• 201 – O recurso foi criado
• 202 – A tarefa foi aceita e está em processamento
• 204 – A solicitação foi atendida e não possui conteúdo de retorno
Erro do lado cliente:
• 400 – Erro genérico
• 401 – Não autorizado
• 403 – Acesso negado
• 404 – Recurso não encontrado
Erro do lado servidor:
• 500 – Erro genérico
• 502 – Não foi possível encaminhar a solicitação
• 504 – Tempo excedido
17. REST: Representação
• Os dados que trafegam entre cliente e servidor precisam ser
representados de alguma forma
• Trata-se da serialização e deserialização de dados
• Há vários formatos possíveis porém os mais usuais são XML e JSON
sendo o JSON o formato preferido em uma solução RESTful
• O cliente informa no cabeçalho Accept os formatos preferidos
• O servidor informa no cabeçalho Content-Type o formato da
informação
• application/json – application/xml – text/csv são alguns dos
valores possíveis
18. Resumo
• Vimos nesta palestra o quanto o HTTP é simples o que torna o REST
simples também.
• Trabalhamos com quatro aspectos: Operações, Endereçamento,
Status de Retorno e Representação.
• Há outros aspectos importantes porém abordamos os fundamentais.
• Visite: https://arrayof.io
• Participe: https://www.meetup.com/pt-BR/eugostododelphi/
• Trabalhe: https://jobs.solides.com/textecnologia/