Este documento apresenta uma introdução sobre como construir APIs RESTful com Spring. A agenda inclui tópicos como URI, recursos, verbos HTTP, códigos de status, tipos de mídia, filtros e paginação, cache, versionamento, documentação e o modelo de maturidade de Richardson (HATEOAS). O documento fornece exemplos e explicações concisas sobre cada um desses conceitos importantes para o desenvolvimento de APIs RESTful.
Interfaces ricas com Rails e React.JS @ Rubyconf 2015Rodrigo Urubatan
O documento descreve uma aplicação web criada com Ruby on Rails no backend e React.js no frontend. A aplicação é um blog simples onde os usuários podem criar, editar e visualizar posts. Componentes React são usados para construir as interfaces do usuário enquanto Backbone.js facilita a comunicação entre o cliente e o servidor. O objetivo é demonstrar como criar uma Single Page Application usando essas tecnologias.
Curso de Java (Parte 6) Introdução a Front-endMario Sergio
Este documento fornece uma introdução aos principais conceitos de front-end web, incluindo HTML, CSS e JavaScript. Inclui exemplos de código e links para referências adicionais.
Não é fácil escrever uma biblioteca confortável de usar. É difícil agradar a todos. Mas também é difícil agradar até quem acha que a nossa biblioteca faz algo útil. Não é fácil nem mesmo quando fazemos algo reusável só para nós mesmos.
Ainda bem que muitos outros programadores já erraram antes de nós. E existem em Python e fora dele diversos exemplos de boas libs nas quais podemos nos inspirar.
Essa palestra resumirá o que torna uma biblioteca boa, de acordo com nossa experiência e com a experiência de outros programadores que já escreveram sobre isso. Algumas características de boas bibliotecas são:
- Alta Consistência
- Muitos dados puros
- Baixa Verbosidade
- Respeito ao Principle of Least Astonishment
- Alta Extensibilidade
- Baixa Retenção
- Vários níveis de abstrações
- Alta granularidade
- Interesses claros e separados
- Pythonica
Como você pode ver, alguns aspectos acima são similares ao Zen of Python. Por isso também mostraremos funcionalidades do Python que ajudam a programar boas interfaces. Além disso, para resumir tudo definiremos um checklist que você poderá usar sempre que for escrever um módulo reusável. Esperamos que isso ajude você a programar melhor, o que certamente agradará seus parceiros de trabalho e a comunidade.
Jaime Neto apresenta sobre o framework PHP Zend Framework. Ele discute os principais componentes e estruturas do Zend Framework, incluindo modelos, controladores, visões e formulários. Ele também fornece exemplos de código para ilustrar o uso de vários componentes como acesso a banco de dados, rotas e controllers.
Interfaces ricas com Rails e React.JS @ Rubyconf 2015Rodrigo Urubatan
O documento descreve uma aplicação web criada com Ruby on Rails no backend e React.js no frontend. A aplicação é um blog simples onde os usuários podem criar, editar e visualizar posts. Componentes React são usados para construir as interfaces do usuário enquanto Backbone.js facilita a comunicação entre o cliente e o servidor. O objetivo é demonstrar como criar uma Single Page Application usando essas tecnologias.
Curso de Java (Parte 6) Introdução a Front-endMario Sergio
Este documento fornece uma introdução aos principais conceitos de front-end web, incluindo HTML, CSS e JavaScript. Inclui exemplos de código e links para referências adicionais.
Não é fácil escrever uma biblioteca confortável de usar. É difícil agradar a todos. Mas também é difícil agradar até quem acha que a nossa biblioteca faz algo útil. Não é fácil nem mesmo quando fazemos algo reusável só para nós mesmos.
Ainda bem que muitos outros programadores já erraram antes de nós. E existem em Python e fora dele diversos exemplos de boas libs nas quais podemos nos inspirar.
Essa palestra resumirá o que torna uma biblioteca boa, de acordo com nossa experiência e com a experiência de outros programadores que já escreveram sobre isso. Algumas características de boas bibliotecas são:
- Alta Consistência
- Muitos dados puros
- Baixa Verbosidade
- Respeito ao Principle of Least Astonishment
- Alta Extensibilidade
- Baixa Retenção
- Vários níveis de abstrações
- Alta granularidade
- Interesses claros e separados
- Pythonica
Como você pode ver, alguns aspectos acima são similares ao Zen of Python. Por isso também mostraremos funcionalidades do Python que ajudam a programar boas interfaces. Além disso, para resumir tudo definiremos um checklist que você poderá usar sempre que for escrever um módulo reusável. Esperamos que isso ajude você a programar melhor, o que certamente agradará seus parceiros de trabalho e a comunidade.
Jaime Neto apresenta sobre o framework PHP Zend Framework. Ele discute os principais componentes e estruturas do Zend Framework, incluindo modelos, controladores, visões e formulários. Ele também fornece exemplos de código para ilustrar o uso de vários componentes como acesso a banco de dados, rotas e controllers.
Palestra sobre JavaFX 1.2 apresentada no Sun Day da II Semana da Computação da UFPB. Apresenta uma introdução sobre JavaFX e as novidades do JavaFX 1.2.
Pense no futuro: PHP com Zend FrameworkFlávio Lisboa
O documento fornece uma introdução ao framework PHP Zend, descrevendo suas principais características e componentes. Em particular, explica como o Zend Framework implementa o padrão MVC, fornecendo classes para controle, visão e modelo, além de ferramentas como Zend_Form, Zend_Db e Zend_Layout. O documento também discute como o Zend Framework promove boas práticas de programação PHP e ajuda a criar aplicações seguras, performáticas e flexíveis.
Zend Framework 2 - Desenvolvimento Ágil CompetenteMichael Cardoso
Essa apresentação faz parte do minicurso Zend Framework 2, onde apresentamos suas principais características e como fazer a instalação deste framework web de ponta.
Os 10 maus hábitos dos desenvolvedores JSFRafael Ponte
O documento lista os 10 piores hábitos de desenvolvedores JSF e fornece soluções para cada um. 1) A maioria dos desenvolvedores não entende plenamente o ciclo de vida do JSF; 2) Componentes AJAX são usados de forma ineficiente; 3) Paginação de registros na sessão mata a escalabilidade.
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1Thyago Maia
O documento fornece uma explicação sobre frameworks no Laravel, definindo-o como um framework PHP open-source criado por Taylor Otwell para auxiliar no desenvolvimento de aplicações Web baseadas no padrão MVC. Além disso, explica como configurar um ambiente de desenvolvimento Laravel no Xampp e como utilizar recursos como controllers, rotas e views.
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 4 - 2019.1Thyago Maia
O documento descreve como implementar facilmente telas de registro e login no Laravel utilizando os recursos de autenticação já disponíveis no framework. Explica que o comando "php artisan make:auth" cria todas as rotas, views e controllers necessários e como proteger rotas utilizando middlewares. Por fim, pede como exercício atualizar uma aplicação de calculadora para exigir login.
Este documento discute o desenvolvimento de aplicações ricas para internet (RIA) utilizando PHP no lado servidor. Apresenta conceitos de web 2.0 como requisições assíncronas e mashups. Define RIA e lista suas características como funcionalidades semelhantes a aplicativos de desktop e comunicação assíncrona com o servidor. Discutem-se tecnologias relacionadas como PHP, JavaScript e Flash, além de exemplos e motivos para usar PHP para desenvolver RIA, como conversão nativa entre JSON e objetos PHP.
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 2Thyago Maia
O documento explica como criar controllers para responder a diferentes tipos de requisições HTTP no Laravel, como GET, POST, PUT e DELETE. Também mostra como utilizar recursos como validação de dados e views para exibir informações ao usuário.
O documento discute PHP e web services. Ele define web services e as tecnologias relacionadas como SOAP, WSDL e UDDI. Explica como web services funcionam entre fornecedores e requerentes e seu status atual e futuro. Também discute como criar e consumir web services com PHP usando a extensão php-soap.
O documento descreve como codificar um servlet em Java usando as classes HttpServlet e HttpServletRequest/Response. Explica que um servlet deve estender HttpServlet e implementar os métodos doGet() ou doPost() dependendo do tipo de requisição. Também mostra como criar um servlet simples que retorna a data atual e mapeá-lo em um arquivo web.xml.
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2Cezar Souza
Este documento apresenta um cronograma para desenvolver um blog utilizando o framework Zend Framework 2 (ZF2). Ele inclui instruções para configurar o ambiente de desenvolvimento, criar os módulos e componentes do blog, como models, controllers e views, e implementar funcionalidades como autenticação, permissões e comentários.
1) O documento introduz os conceitos e características de APIs RESTful, incluindo métodos HTTP, URLs, verbos como GET e POST, estado stateless e formatos de dados como JSON.
2) São detalhados exemplos de requisições e respostas HTTP para operações como criar, ler, atualizar e deletar recursos.
3) Outros tópicos abordados incluem autenticação, cache, versionamento, tratamento de erros e ferramentas para documentação de APIs.
Este documento fornece um resumo sobre Java Server Pages (JSP):
1) JSP permite implementar servlets escrevendo código Java em páginas HTML/XML para gerar dinamicamente conteúdo da web.
2) JSP usa marcadores especiais para inserir código Java em páginas, que são compiladas em servlets antes de serem executadas.
3) Objetos como request, response, out e session estão implicitamente disponíveis em JSP para acessar dados de entrada/saída.
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDBBruno Rocha
Utilizar Flask + extensões para desenvolver uma plataforma full-stack com os recursos de auth, controle de acesso, assets, commands, celery tasks, interface admin customizavel, cache entre outras coisas. Falarei sobre minha experiência desenvolvendo o Quokka CMS http://www.quokkaproject.org que é um CMS desenvolvido com Flask e Mongo DB.
Este documento fornece uma introdução sobre como criar módulos para o Divi no WordPress de forma simples. Explica a estrutura básica de arquivos necessária, como criar funções e seções, e os principais tipos de campos disponíveis. Também mostra como renderizar os dados no frontend e incluir arquivos CSS e JS.
A pasta config contém arquivos de configuração globais para todo o projeto. Os arquivos mais importantes são:
- application.config.php: Configurações globais do projeto como timezone, autoload, etc.
- modules.config.php: Configurações de rotas globais e módulos carregados.
- modules: Pasta que contém os módulos do projeto. Cada módulo é um mini-framework dentro do projeto com suas próprias configurações e códigos.
- public: Pasta pública que contém os arquivos de entrada do projeto como index
O documento descreve o framework Django, desenvolvido em Python. Django estimula o desenvolvimento rápido de websites, usando padrões como MVC, ORM e templates. O documento explica como Django divide sites em projetos e aplicações, e como funcionam os componentes Model, View e Template na arquitetura MVT de Django.
O documento apresenta uma palestra sobre o framework web Vraptor para desenvolvimento Java. Aborda as vantagens do Vraptor como produtividade, convenções, injeção de dependência e suporte a REST. Também discute os principais conceitos do MVC e como iniciar um projeto com Vraptor.
[1] O documento discute o desenvolvimento de aplicações web usando o framework Django, incluindo sua história, características e padrão MVC.
[2] É apresentada uma introdução ao Django, explicando o que é o framework e como ele pode ser usado para construir aplicações web de forma rápida e eficiente.
[3] São descritas as etapas para criar uma primeira aplicação web simples usando Django, incluindo a instalação do framework, criação de um projeto e execução de um servidor de desenvolvimento.
Este documento discute Servlets e JSPs, incluindo por que usá-los, o que fazem clientes e servidores web, e como eles se comunicam usando HTML e HTTP. Também explica como containers mapeiam requisições para servlets usando um deployment descriptor.
Este documento fornece uma introdução sobre serviços RESTful e mashups. Resume as seguintes informações essenciais:
1) Apresenta os conceitos fundamentais de arquitetura REST e como serviços RESTful funcionam;
2) Discutem a API JAX-RS para construir serviços RESTful em Java;
3) Explicam como consumir e testar serviços RESTful usando ferramentas como RESTClient, cURL e bibliotecas JavaScript;
4) Introduzem o conceito de mashups e como agregam conteúdo de v
Palestra sobre JavaFX 1.2 apresentada no Sun Day da II Semana da Computação da UFPB. Apresenta uma introdução sobre JavaFX e as novidades do JavaFX 1.2.
Pense no futuro: PHP com Zend FrameworkFlávio Lisboa
O documento fornece uma introdução ao framework PHP Zend, descrevendo suas principais características e componentes. Em particular, explica como o Zend Framework implementa o padrão MVC, fornecendo classes para controle, visão e modelo, além de ferramentas como Zend_Form, Zend_Db e Zend_Layout. O documento também discute como o Zend Framework promove boas práticas de programação PHP e ajuda a criar aplicações seguras, performáticas e flexíveis.
Zend Framework 2 - Desenvolvimento Ágil CompetenteMichael Cardoso
Essa apresentação faz parte do minicurso Zend Framework 2, onde apresentamos suas principais características e como fazer a instalação deste framework web de ponta.
Os 10 maus hábitos dos desenvolvedores JSFRafael Ponte
O documento lista os 10 piores hábitos de desenvolvedores JSF e fornece soluções para cada um. 1) A maioria dos desenvolvedores não entende plenamente o ciclo de vida do JSF; 2) Componentes AJAX são usados de forma ineficiente; 3) Paginação de registros na sessão mata a escalabilidade.
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1Thyago Maia
O documento fornece uma explicação sobre frameworks no Laravel, definindo-o como um framework PHP open-source criado por Taylor Otwell para auxiliar no desenvolvimento de aplicações Web baseadas no padrão MVC. Além disso, explica como configurar um ambiente de desenvolvimento Laravel no Xampp e como utilizar recursos como controllers, rotas e views.
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 4 - 2019.1Thyago Maia
O documento descreve como implementar facilmente telas de registro e login no Laravel utilizando os recursos de autenticação já disponíveis no framework. Explica que o comando "php artisan make:auth" cria todas as rotas, views e controllers necessários e como proteger rotas utilizando middlewares. Por fim, pede como exercício atualizar uma aplicação de calculadora para exigir login.
Este documento discute o desenvolvimento de aplicações ricas para internet (RIA) utilizando PHP no lado servidor. Apresenta conceitos de web 2.0 como requisições assíncronas e mashups. Define RIA e lista suas características como funcionalidades semelhantes a aplicativos de desktop e comunicação assíncrona com o servidor. Discutem-se tecnologias relacionadas como PHP, JavaScript e Flash, além de exemplos e motivos para usar PHP para desenvolver RIA, como conversão nativa entre JSON e objetos PHP.
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 2Thyago Maia
O documento explica como criar controllers para responder a diferentes tipos de requisições HTTP no Laravel, como GET, POST, PUT e DELETE. Também mostra como utilizar recursos como validação de dados e views para exibir informações ao usuário.
O documento discute PHP e web services. Ele define web services e as tecnologias relacionadas como SOAP, WSDL e UDDI. Explica como web services funcionam entre fornecedores e requerentes e seu status atual e futuro. Também discute como criar e consumir web services com PHP usando a extensão php-soap.
O documento descreve como codificar um servlet em Java usando as classes HttpServlet e HttpServletRequest/Response. Explica que um servlet deve estender HttpServlet e implementar os métodos doGet() ou doPost() dependendo do tipo de requisição. Também mostra como criar um servlet simples que retorna a data atual e mapeá-lo em um arquivo web.xml.
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2Cezar Souza
Este documento apresenta um cronograma para desenvolver um blog utilizando o framework Zend Framework 2 (ZF2). Ele inclui instruções para configurar o ambiente de desenvolvimento, criar os módulos e componentes do blog, como models, controllers e views, e implementar funcionalidades como autenticação, permissões e comentários.
1) O documento introduz os conceitos e características de APIs RESTful, incluindo métodos HTTP, URLs, verbos como GET e POST, estado stateless e formatos de dados como JSON.
2) São detalhados exemplos de requisições e respostas HTTP para operações como criar, ler, atualizar e deletar recursos.
3) Outros tópicos abordados incluem autenticação, cache, versionamento, tratamento de erros e ferramentas para documentação de APIs.
Este documento fornece um resumo sobre Java Server Pages (JSP):
1) JSP permite implementar servlets escrevendo código Java em páginas HTML/XML para gerar dinamicamente conteúdo da web.
2) JSP usa marcadores especiais para inserir código Java em páginas, que são compiladas em servlets antes de serem executadas.
3) Objetos como request, response, out e session estão implicitamente disponíveis em JSP para acessar dados de entrada/saída.
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDBBruno Rocha
Utilizar Flask + extensões para desenvolver uma plataforma full-stack com os recursos de auth, controle de acesso, assets, commands, celery tasks, interface admin customizavel, cache entre outras coisas. Falarei sobre minha experiência desenvolvendo o Quokka CMS http://www.quokkaproject.org que é um CMS desenvolvido com Flask e Mongo DB.
Este documento fornece uma introdução sobre como criar módulos para o Divi no WordPress de forma simples. Explica a estrutura básica de arquivos necessária, como criar funções e seções, e os principais tipos de campos disponíveis. Também mostra como renderizar os dados no frontend e incluir arquivos CSS e JS.
A pasta config contém arquivos de configuração globais para todo o projeto. Os arquivos mais importantes são:
- application.config.php: Configurações globais do projeto como timezone, autoload, etc.
- modules.config.php: Configurações de rotas globais e módulos carregados.
- modules: Pasta que contém os módulos do projeto. Cada módulo é um mini-framework dentro do projeto com suas próprias configurações e códigos.
- public: Pasta pública que contém os arquivos de entrada do projeto como index
O documento descreve o framework Django, desenvolvido em Python. Django estimula o desenvolvimento rápido de websites, usando padrões como MVC, ORM e templates. O documento explica como Django divide sites em projetos e aplicações, e como funcionam os componentes Model, View e Template na arquitetura MVT de Django.
O documento apresenta uma palestra sobre o framework web Vraptor para desenvolvimento Java. Aborda as vantagens do Vraptor como produtividade, convenções, injeção de dependência e suporte a REST. Também discute os principais conceitos do MVC e como iniciar um projeto com Vraptor.
[1] O documento discute o desenvolvimento de aplicações web usando o framework Django, incluindo sua história, características e padrão MVC.
[2] É apresentada uma introdução ao Django, explicando o que é o framework e como ele pode ser usado para construir aplicações web de forma rápida e eficiente.
[3] São descritas as etapas para criar uma primeira aplicação web simples usando Django, incluindo a instalação do framework, criação de um projeto e execução de um servidor de desenvolvimento.
Este documento discute Servlets e JSPs, incluindo por que usá-los, o que fazem clientes e servidores web, e como eles se comunicam usando HTML e HTTP. Também explica como containers mapeiam requisições para servlets usando um deployment descriptor.
Este documento fornece uma introdução sobre serviços RESTful e mashups. Resume as seguintes informações essenciais:
1) Apresenta os conceitos fundamentais de arquitetura REST e como serviços RESTful funcionam;
2) Discutem a API JAX-RS para construir serviços RESTful em Java;
3) Explicam como consumir e testar serviços RESTful usando ferramentas como RESTClient, cURL e bibliotecas JavaScript;
4) Introduzem o conceito de mashups e como agregam conteúdo de v
This document summarizes a presentation on ASP.NET Web API given by Pedro Félix. The presentation introduced ASP.NET Web API, describing its programming model based on HTTP and focus on building APIs exposed via the web. It also covered the architectural components involved, including routing, controllers, request/response handling, and extensibility points.
O documento descreve os conceitos fundamentais de REST e HTTP. Explica que REST usa o protocolo HTTP e seus métodos como GET, POST, DELETE e PUT para acessar recursos identificados por URIs de forma uniforme, stateless e cacheável através de camadas. Também apresenta exemplos de implementação de serviços RESTful usando o framework CherryPy em Python.
O documento apresenta três frases principais sobre Jesus: 1) Jesus disse para virem a ele todos os cansados e oprimidos que ele daria descanso; 2) Mateus 11:28 é citado; 3) Aproximando-se da pureza do REST em Java através do HATEOAS e otimização do HTTP.
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.
Autenticação, Documentação, Padronização, Negociação de Conteúdo, escolha do framework (Laravel vs Lumen), pacotes que podem ajudar, boas práticas, dicas de segurança, recursos úteis. Várias lições aprendidas ao se montar uma API pública para outros devs utilizarem.
Link para o vídeo da apresentação: https://youtu.be/3GAF2t5Qohc
1) O documento discute boas práticas para o design de APIs REST, incluindo o uso de recursos, verbos HTTP, códigos de status HTTP, paginação, filtros e segurança.
2) É recomendado versionar APIs, evitar aninhamentos profundos, usar POST, PUT e PATCH corretamente, filtrar com parâmetros de consulta e retornar códigos HTTP apropriados.
3) As APIs devem ter documentação, health checks e ferramentas como gateways para melhorar a segurança e experiência do desenvolvedor.
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
REST é a bola vez quando falamos sobre API. As maioria dos serviços que encontramos na web fornece interfaces deste tipo para que possamos desenvolver integrações. Será mesmo que estas APIs podem ser consideradas RESTful? O que é preciso para que uma API seja considerada RESTful? Você sabia que este padrão já existe a mais de 15 anos? Nesta palestra vamos nos aprofundar no tema e entender os conceitos e constraints de um sistema RESTful para que possamos explorar suas vantagens na hora de arquitetar nossa próxima API web.
Este documento fornece uma introdução ao desenvolvimento web usando Java, cobrindo tópicos como servlets, JSPs, estrutura de aplicações web, configuração do Tomcat e deploy de aplicações. Apresenta também breves descrições dos principais conceitos e ferramentas envolvidas no desenvolvimento web com Java.
Este documento fornece um resumo sobre novidades da especificação JAX-RS 2.0 para criação de web services RESTful com Java. As principais atualizações incluem o suporte a uma API cliente para requisições, a capacidade de suspender requisições, e melhor integração com validações e filtros/interceptores para modificar requisições e respostas. O JAX-RS 2.0 trará melhorias significativas para desenvolvimento de web services RESTful com Java.
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JSRodrigo Urubatan
O documento descreve uma aplicação web construída com Rails no backend e React.js no frontend. O objetivo é usar Rails apenas para a API e implementar toda a interface do usuário com React para melhor interação sem duplicação de código. É explicado como configurar a aplicação Rails, criar os componentes React e usar Backbone para comunicação cliente-servidor.
Desenvolvimento de sistemas web com php Frameworks - Aula 1Thyago Maia
O documento discute frameworks, definindo-os como conjuntos de classes que encapsulam abstrações para solução de problemas relacionados. Apresenta o framework Laravel, desenvolvido em PHP para aplicações web baseadas em MVC, e o Homestead, ambiente de desenvolvimento oficial do Laravel utilizando Vagrant. Explica também rotas no Laravel, mapeando URLs a controllers via arquivo routes.php.
Este documento discute a motivação para criar uma nova versão da API do Apontador usando o framework Spring. Isso permitiria melhorias como manutenibilidade, autenticação, padronização de serviços REST e compatibilidade. O Spring fornece funcionalidades como REST, segurança, OAuth, cache e integração com bancos de dados e redes sociais.
O documento apresenta Web Services e REST. Discute os tipos SOAP e REST de Web Services, com REST definido por utilizar os métodos HTTP e ter restrições como stateless e interface uniforme. Também apresenta JAX-WS para SOAP e JAX-RS para REST no Java.
O documento descreve o WebSphere Application Server (WAS) da IBM, incluindo o que é, demonstrações de instalação e fluxo de funcionamento. Também fornece exemplos de aplicações simples como "Olá Mundo" usando JSP e um WAR para implantação no servidor.
Semelhante a Construindo APIs RESTful com Spring (20)
7. O termo é REST ou RESTful?
▣ Rest é um estilo arquitetural
que foi criado por Roy
Fielding.
▣ RESTful é o design dos
contratos de APIs que
respeita os conceitos REST.
10. Spring MVC
▣ É um action Web MVC framework que é suportado pelo Spring
Boot e os convencionais servidores Java.
▣ É muito utilizado para implementação de aplicações Web ou
para REST APIs.
▣ Ele possui uma implementação do pattern FrontController que
basicamente é responsável por receber todas as requisições,
delega-las para os respectivos controllers e retornar a devida
resposta.
11.
12. ‘’
Qual a diferença entre MVC action
based e component based?
Leia mais:
http://bit.ly/actionoucomponent
15. Estrutura básica [ 1 ]
https://api.twitter.com/1.1/search
Seu domínio
HTTPS
ou
HTTP
Recursos e
Parâmetros
Versão da API
(opcional)
16. Estrutura básica [ 2 ]
https://api.fcamara.com.br/vagas/curriculos
Seu domínio
HTTPS
ou
HTTP
Recursos e
Parâmetros
Nome da API
(opcional)
17. ‘’
▣ Identificador de Recursos Universal,
como diz o próprio nome, é o
identificador do recurso. Pode ser
uma imagem, uma página, etc, pois
tudo o que está disponível na
internet precisa de um identificador
único para que não seja confundido.
▣ Leia mais: http://bit.ly/urlvsuri
25. 4.
Verbos HTTP
O mínimo que você
precisa saber sobre:
GET, POST, PUT,
DELETE...PATCH e
OPTIONS.
26.
27. GET: Um método de consulta
▣ Cacheável
GET …/usuarios
GET …/usuarios/301
28. POST: Um método para criação
▣ Não é Cacheável
▣ Informações são transitadas no corpo da requisição
POST …/usuarios
{
"username": "Malaquias",
"password": "123456",
"city": "Salvador",
"interests": "Java"
}
29. PUT: Um método para atualização
▣ Não é Cacheável
▣ Informações são transitadas no corpo da requisição
PUT …/usuarios/301
{
"username": "Malaquias",
"password": "123456",
"city": “São Paulo",
"interests": "Java"
}
30. DELETE: Um método para remoção
▣ Não é Cacheável
DELETE …/usuarios
DELETE …/usuarios/301
31. PATCH: Um método para atualização parcial
▣ Não é Cacheável
PATCH …/usuarios/301
{
"password": “ab21ac2",
}
32. OPTIONS: Quais verbos posso usar?
OPTIONS …/usuariosHTTP/1.1 200 OK
Allow: OPTIONS, GET, HEAD, POST
Cache-Control: max-age=604800
Date: Thu, 13 Oct 2016 11:45:00 GMT
Expires: Thu, 20 Oct 2016 11:45:00 GMT
Server: EOS (lax004/2813)
x-ec-custom-error: 1
Content-Length: 0
43. Status: 400 Bad Request
POST …/usuarios
{
"status":400,
"msg":"Nome do usuário não pode ser nulo ou vazio",
"doc":"https://api.fcamara.com.br/erros/nome-usuario"
}
44. Status: 404 Not Found
GET …/usuarios/64721
{
"status":404,
"msg":“Usuário não foi encontrado",
"doc":"https://api.fcamara.com.br/erros/usuario-nao-existe"
}
58. ‘’
▣ Gosto de pensar no Graphql
como uma forma de
desenvolver uma API orientado
a tipos, pois tudo no Graphql se
resume a tipos e resolvers.
▣ Leia mais: http://bit.ly/2uU0eSb
65. Fazer caching é uma boa prática!
▣ Vamos evitar tráfego
▣ Diminuir a latência de rede
▣ Evitar que nossos servidores fiquem
sobrecarregados
66. Mas temos que ter cuidado com...
▣ O tempo que vamos invalidar o cache
▣ Se alguma ação vai invalidar o cache
▣ Faz clusters? Como sincronizar o cache?
69. As coisas mudam
Dificilmente uma API será completamente estável, mudanças são
sempre inevitáveis, então é importante para o seu negócio que
você consiga caminhar sem quebrar.
70. Voltamos a estrutura básica [ 1 ]
https://api.twitter.com/1.1/search
Versão da API
(opcional)
74. Uma boa documentação tem...
▣ Descrição, tutoriais de uso e exemplos
▣ Ela pode ou não ser interativa
▣ Está sempre atualizada
▣ Quando se tem muitas APIs, um catalogo é
uma opção interessante de se ter
75. Swagger
▣ Modelagem da API
▣ Geração de documentação (legível) da API
▣ Geração de códigos do Cliente e do Servidor, com suporte a
várias linguagens de programação
▣ No Java usamos anotações para gerar a documentação
O Swagger é um projeto composto por algumas ferramentas que
auxiliam o desenvolvedor de APIs REST
79. Nível 0 - POX
HTTP URI OPERAÇÃO
GET /getUsuarios/1 Retorna
POST /criarUsuarios Cria
POST /atualizarUsuarios/1 Atualiza
POST /deleteUsuarios/1 Deleta
É o nível mais baixo de uma API RESTful, aqui não se usa padrão
para praticamente nada.
80. Nível 1 – Recursos [ 1 ]
HTTP URI OPERAÇÃO
GET usuarios/1/buscar Retorna
POST usuarios/criar Cria
POST usuarios/1/atualizar Atualiza
POST usuarios/1/deletar Deleta
Se usa pelo menos os recursos como uma forma de modelar e
organizar APIs.
81. Nível 1 – Recursos [ 2 ]
HTTP URI OPERAÇÃO
GET usuarios/1 Retorna
POST usuarios Cria
PUT usuarios/1 Atualiza
DELETE usuarios/1 Deleta
Se usa pelo menos os recursos como uma forma de modelar e
organizar APIs.
82. Nível 2 – Verbos HTTP
HTTP URI OPERAÇÃO STATUS
GET usuarios/1 Retorna 200, 400, 500
POST usuarios Cria 200, 400, 500
PUT usuarios/1 Atualiza 200, 400, 500
DELETE usuarios/1 Deleta 200, 400, 500
Aqui já se utiliza os verbos HTTP e os STATUS code na execução
de uma operação.
83. Nível 2 – Hypermedia
Tem como elemento principal a representação hypermedia,
permitindo que um documento descreva seu estado atual, e o
seu relacionamento com outros elementos ou futuros estados.
Link de exemplo: https://pokeapi.co/