3. O QUE SÃO EXPRESSÕES LAMBDA?
• As funções lambda utilizam técnicas de programação funcional
• É um paradigma no qual o seu ponto central se baseia na aplicação de
funções.
4. PRINCIPAIS VANTAGENS
• Código mais simples;
• Simplificar diversas operações em cima de uma coleção de dados;
• Possui uma sintaxe extremamente simples.
6. STREAM
• Permite processar dados de forma declarativa.
• Permite aproveitar as arquiteturas de núcleos múltiplos sem ter que
programar linhas de código multiprocesso.
7. UTILIZANDO STREAM X LAMBDA
• Pode se utilizar o Stream para filtrar elementos de uma coleção de objetos
10. O QUE É JSHELL?
• É um terminal interativo que você pode utilizar para rodar código Java sem
ter que ficar criando classes e métodos Main para executar seus
experimentos e testes de maneira rápida.
• Ótimo para testar linhas de códigos para ver se funcionam antes de
implementar em seu projeto.
12. O QUE É FLOW?
• É uma API que é composta pela classe abstrata Flow e suas interfaces
internas, que seguem o padrão de publicador e assinante
• Ele vem pra resolver o famoso problema de processamentos assíncronos em
que um componente de origem envia dados sem saber ao certo se isso está
em uma quantidade maior do que aquela com a qual o consumidor pode
lidar.
14. FEATURES JAVA 10
• Interferências de tipos (var)
• Alocação de heap em dispositivos de memória alternativa
15. INTERFERÊNCIAS DE TIPOS
• Consiste em usar a palavra "var" no lugar da declaração do tipo de atribuição
• agora podemos utilizar o var na declaração de variáveis locais, pois o Java irá
inferir este tipo “automagicamente”.
• Como por exemplo:
• hashMap<String, Integer> map = new HashMap<>();
• var map = new HashMap<String, Integer>();
16. ALOCAÇÃO DE HEAP EM DISPOSITIVOS DE MEMÓRIA
ALTERNATIVA
• Permite que a VM HotSpot aloque o heap de objeto Java em um dispositivo
de memória alternativo, especificado pelo usuário.
• Por exemplo:
• Esse recurso possibilita atribuir processos de prioridade maisbaixa para usar a memória
NV-DIMM e, em vez disso, alocar apenas os processos de prioridade mais alta para a
DRAM em um ambiente com várias JVMs.
20. HTTP CLIENT
• No java 9 já havia dado um pequeno passo à frente em questão do http
client, então no java 11 ele ganha uma padronização e esta consolidado
para ser utilizado.
23. MICROSERVICES
• O que são?
• Modo específico de projetar softwares como conjuntos de serviços de implementação
independentes.
• Os microservices possuem muitas vantagens em relação às aplicações monolíticas, onde o
código é centralizado em um único bloco.
24. MONOLÍTICOS
• O que são?
• São compostos basicamente por módulos ou funcionalidades agrupadasque, juntas,
compõem o software.
• Como exemplos:
• podemos citar os sistemas ERP (Enterprise Resource Planning), como o SAP ou Protheus.
• Módulos para controle do setor financeiro, contábil, compras, entre outros, agrupados numa
única solução que acessa o banco de dados.
25. SOA
• O que é?
• É uma arquitetura que promove a integração do negócio com a tecnologiada
informação com componentesde serviços
• Os resultadosque SOA traz são:
• agilidade para atender as novas demandas;
• flexibilidade nas mudanças;
• redução de custo e reuso de serviços.
26. DIFERENÇA ENTRE MONOLÍTICOS - SOA -
MICROSERVICES
• A diferença é que o monolítico se atribui a um código extenso e sobrecarregado tudo em um
único módulo.
• Já os microserviços são subsistemas que cada um atribuí sua própria
funcionalidade
• E o SOA consiste em pequenos sistemas que necessitam da implementação
dos outros sistemas atribuidos na arquitetura do projeto
27. PROTOCOLO HTTP
• Hypertext Transfer Protocol - Protocolo de Transferência de Hipertexto
• É o método utilizado para enviar e receber informações na web.
• Baseado em requisições e respostas entre clientes e servidores.
28. MENSAGEM HTTP
• O HTTP faz a comunicação entre o cliente e o servidor por meio de
mensagens. O cliente envia uma mensagem de requisição de um recurso e o
servidor envia uma mensagem de resposta ao cliente com a solicitação.
29. CABEÇALHO
• O cabeçalho da mensagem é utilizado para transmitir informações adicionais
entre o cliente e o servidor. Ele é especificado imediatamente após a linha
inicial da transação (método), tanto para a requisição do cliente quanto para
a resposta do servidor, seguido de dois pontos e um valor.
• Existem quatro tipos de cabeçalhos que poderão ser incluídos na mensagem
os quais são: general-header, request-header, response-header e entity-header.
30. CABEÇALHO
• General-header
• Podem ser usados tanto em solicitações quanto em respostas, porém sem relação com os
dados eventualmente transmitidos no corpo da mensagem.
• Request-header
• Contém mais informaçõessobre o recurso a ser obtido ou sobre o próprio cliente.
31. CABEÇALHO
• Response-header
• Contém informaçõesadicional sobre a solicitação, como a sua localização ou sobre o
servidor.
• Entity-header
• Contém mais informação sobre o conteúdo da entidade, como o tamanho do conteúdo ou
o seu MIME-type.
32. CORPO
• Uma mensagem HTTP pode conter um corpo de dados que são enviados abaixo das
linhas de cabeçalho.
• Em uma mensagem de resposta, o corpo da mensagem é o recurso que foi
requisitado pelo cliente, ou ainda uma mensagem de erro, caso este recurso não seja
possível.
• Já em uma mensagem de requisição, o corpo pode conter dados que serão enviados
diretamente pelo usuário ou um arquivo que será enviado para o servidor.
33. MENSAGEM DE REQUISIÇÃO
• Uma mensagem de requisição do cliente é composta pelos seguintes campos:
uma linha inicial linhas de cabeçalhos;
• uma linha em branco obrigatória e um corpo de mensagem opcional.
• A linha inicial de uma requisição é composta por três partes separadas por
espaços:
• o método, a identificação do URI e a versão do HTTP utilizado.
36. REQUEST
• GET
• solicita uma representação do recurso especificado. Solicitações usando GET só devem recuperar dados.
• POST
• Envia dados para serem processados (por exemplo, dados de um formulário HTML) para o recurso
especificado.
• PUT
• O método PUT envia os dados de forma semelhante ao POST, através do corpo do HTTP a diferença
entre os 2 métodos é semântica. No caso o PUT ele pode ser utilizado para atualizações de dados.
• DELETE
• Exclui o recurso.
37. REQUEST
• PATCH
• Parecido com o PUT e POST mas ele é mais fácil se você quiser atualizar somente um dado de um
usuário por exemplo, ele atualiza somente um pequeno trecho.
• OPTIONS
• Recupera os métodosHTTP que o servidor aceita.
• HEAD
• Parecido com o GET ele faz uma requisição, um pedido mas ele retorna somente os cabeçalhos
• TRACE
• Ecoa o pedido, de maneira que o cliente possa saber o que os servidoresintermediários estão mudando
em seu pedido.
39. CÓDIGOS DE STATUS
• 1XX: Informativo – a solicitação foi aceita ou o processo continua em andamento;
• 2XX: Confirmação – a ação foi concluída ou entendida;
• 3XX: Redirecionamento – indica que algo mais precisa ser feito ou precisou ser feito
para completar a solicitação;
• 4XX: Erro do cliente- indica que a solicitação não pode ser concluída ou contém a
sintaxe incorreta;
• 5XX: Erro no servidor – o servidor falhou ao concluir a solicitação.
40. CÓDIGOS DE STATUS
• 100 continue – Essa resposta provisória indica que tudo ocorreu bem até agora e
que o cliente deve continuar com a requisição ou ignorar se já concluiu o que
gostaria.
• 200 ok – Esta requisição foi bem sucedida
• Erro 403 – Significa que o servidor entendeu a solicitação do navegador mas se
recusa a fazê-lo, pois o navegador não possui autorização para isso. Ao enviar este
erro, o servidor comunica “Você não ter permissão para acessar este servidor”.
Então o acesso foi negado.
41. CÓDIGOS DE STATUS
401 Unauthorized Embora o padrão HTTP especifique "unauthorized", semanticamente, essa
resposta significa "unauthenticated". Ou seja, o cliente deve se autenticar para obter a resposta
solicitada.
• Erro 404 - Quando você digita uma URL e recebe a mensagem ERROR 404 – PAGE NOT FOUND
quer dizer que esta URL não te levou a lugar nenhum. Os motivos podem ser: a página não existe
mais, a URL deste site mudou ou você digitou a URL errada.
• Erro 500 significa que algum script ou solicitação não foi compreendida – o que nem sempre
indica um problema com o servidor.
• ERRO 503 significa serviço temporariamente indisponível.
• https://www.hostinger.com.br/tutoriais/o-que-e-http-error-e-principais-codigos-http/
42. VERSIONAMENTO DE CONTRATO
• Controle de versão de APIs Web se deve aos contratos usados para evitar a
quebra de aplicações clientes.
• Uma forma de controle de versão é adicionar a versão para o URI:
• http://api.technocorp.clientes/v1/
43. VERSIONAMENTO DE CONTRATO
• Um problema quando a URI para um recurso muda é que o recurso pode não
ser mais encontrado com a URI antiga, a menos que redirecionamentos sejam
utilizados.
• Uma alternativa é adicionar a versão para o nome de domínio:
• http://v1.api.technocorp.clientes/
44. VERSIONAMENTO DE CONTRATO
• Outra alternativa é versionar os media types
• Esta alternativa é baseada na negociação de conteúdo e adiciona um
número de versão no media type em Accept e cabeçalhos de Content-Type:
• application/vnd.technocorp.desenvolvedores.v1+json