API
Conceito
O conceito de API nada mais é do que uma forma de comunicação entre sistemas.
Elas permitem a integração entre dois sistemas, em que um deles fornece informações e serviços que podem ser utilizados pelo outro, sem a necessidade de o sistema que consome a API conhecer detalhes de implementação do software.
Tipos de API e suas aplicações
Simple object access protocol (SOAP)
SOAP é um protocolo padrão projetado originalmente para possibilitar a comunicação entre aplicações desenvolvidas em diferentes linguagens e plataformas.
Como se trata de um protocolo, ele impõe regras integradas que aumentam sua complexidade e sobrecarga, desacelerando o tempo de carregamento das páginas.
Exemplo de uso: Comunicação entre um sistema de emissão de notas e a Sefaz (autorizadora de notas).
Representational State Transfer (REST)
REST é um protocolo de comunicação é “sem estado”, em outras palavras: as interações não dependem de requisições prévias.
Foi criada para ser usada em aplicações interligadas por rede, usando prioritariamente o HTTP.
As APIs REST trabalham levando as informações de uma ferramenta para outra e são bastante eficientes nesse processo. Além disso, elas são mais rápidas de criar, porque dispensam um processamento longo.
Exemplo de uso: WhatsApp Web e ferramentas de chat terceirizadas.
Resumo
Simplificando, o REST acessa os dados enquanto o SOAP executa operações por meio de um conjunto mais padronizado de mensagens. Ainda assim, na maioria dos casos, tanto REST como o SOAP podem ser usados para obter o mesmo resultado (e ambos são infinitamente escaláveis).
Entenda mais no vídeo: https://www.youtube.com/watch?v=3LHSyha0xN0
Dúvidas - 21/05
Dúvidas API
- 01. Luiz Cláudio Theodoro: Pode dizer exatamente o que essa API do SEFAZ, faz?
- Essa API carimba a nota fazendo validação e autorização da NF
- 02. Luiz Cláudio Theodoro: Pode explicar melhor o StateLess, com exemplos?
- 03. Ricky Willian Ferraz: O Postman funciona da mesma forma que o SOAP?
- O Postman é um "padronizador" de API, permitindo um desenvolvimento sobre APIs SOAP, REST e Graphql.
- 04. Rafael Ribeiro de Sousa: Graphql seria uma alternativa a REST?
- Sim Rafael, o Graphql é uma alternativa a APIs do tipo REST, criada pela Facebook, que pela discussão presente nos fóruns, facilita as consultas de informação, segue citação:
"o GraphQL lhe permite realizar buscas declarativas onde um cliente especifica exatamente os dados de que ele precisa da API. Então agora ao invés de termos vários e vários endpoints o GraphQL expõe apenas um e responde com eficiência e precisão os dados solicitados."
Dúvidas Algoritmos/Compiladores
Sugestão de vídeo: https://www.youtube.com/watch?v=nj22l1gIll8
- 01. Matheus Faria: Qual a diferença entre algoritmo e linguagem de programação, tipo C/C++?
- 02. Igor Augusto: Os algoritmos influenciam na propagação das fake news? principalmente em redes sociais, nas quais há muita informação, mas pouco conhecimento
Microserviços
Sugestão de vídeo 1: https://www.youtube.com/watch?v=CKL3fV5UR8w
Sugestão de vídeo 2: https://www.youtube.com/watch?v=j3XufmvEMiM
Dúvidas
- 01. Matheus Faria: O que é uma comunicação assincrona?
- 02. Ricky Willian Ferraz: Você citou que os microsserviços tem a vantagem de serem fáceis de testar, poderia explicar melhor pq é fácil?
- Por que cada microsserviço é responsável por uma "parte" específica do sistema apenas. Em comparação com um projeto baseado na arquitetura monolítica, você tem um volume menor de testes, e a capacidade de desenvolver os testes de forma mais isolada, o que "facilita" os testes do projeto.
- 03. Paulo Giovany: Vale à pena utilizar microsserviços em sistemas pequenos?
- A resposta é depende do quão pequeno. Porém serviços de muito pequeno porte, geralmente não tem uma necessidade da utilização da arquitetura de microsserviços, pois não seriam capazes de aproveitar as vantagens dos microsseviços, como por exeplo a capacidade de trabalhar melhor com alto tráfego de usuários, devido a trabalhar com comunicação assíncrona entre os serviços, entre outras vantagens. Além de que os microsserviços geralmente são implementados em projetos maiores onde há uma necessidade de fragmentar o código em serviços, para obter alguma vantagem nessa utilização, que pode ser melhor performance, melhor organização dos times de desenvolvimento, entre outras.
- 04. Matheus Faria: Quando devo escolher um microsserviço e quando não usar?
- 05. Otavio Malta: Microserviço é o mesmo que web service?