3
respostas

Comunicação Front End/Back

Tudo bem?

Gostaria de indicações de videos exemplificando e vossas explicações para essa comunicaçao front-back.

1) usando angular - node, parece q usa middleware http, ok, mas se cria um arquivo igual se faz pra back end? 2) usando angular e outro back, como go ou c++ ou c#.

1) usando angular - node, parece q usa middleware http, certo?, mas se cria um arquivo igual para isso aonde se mexe e configura? Igual como se cria as coisas pra comunicaçao com DB?

E somente ter os HTTP verbs em ambos apps que rola automatico? get, post, put, delete? quais arquivos, como funciona esse comunicacao?

tudo sendo js é mais facil ne, e usando outro backend, como rola isso?

Obrigado.

3 respostas

Olá, Eric! Tudo bem?

Excelente pergunta!

Na verdade, o front-end não sabe como o back-end é implementado (se é JS, C#, Java, etc...). É como uma tomada, temos as entradas do back-end (que são as rotas), e as chamadas http são os conectores que entram nessa tomada. Pouco importa o funcionamento de outras partes, tanto as que produzem a energia elétrica quanto o dispositivo que consome, contanto que um entenda o outro.

Nesse caso, ao invés das linguagens definirem a comunicação, nós temos convenções e padrões que definem como essa comunicação deve ser feita, e as linguagens apenas atendem a essas especificações.

Quando transferimos dados entre Angular e Node, o Node não sabe que o front-end é em Angular, e o front-end não sabe que o back-end é em Node, porque eles apenas transferem dados um pro outro.

Utilizariamos normalmente os métodos HTTP para um back-end feito em outra linguagem, pois o HTTP é agnóstico. Recomendo este curso para você entender como o HTTP funciona melhor, é um tópico muito interessante que irá te dar clareza.

Mas resumindo, é isso, independentemente da linguagem do front-end e do back-end o tráfego é feito HTTP, e quando esses dados chegam ao back-end, ele interpreta e modela com base na sua necessidade.

Inclusive, essa falta de conhecimento que o front-end tem do back-end e vice-versa é muito importante, pois nos permite criar aplicações mais universais, que não dependem de uma estrutura específica, contanto que o padrão da comunicação continue o mesmo.

Você pode ler um artigo mais afundo aqui.

Quanto a vídeos, sugiro:

Espero ter ajudado!

Muito obrigado Leonardo.

Http seria uma das maneiras, correto, existem outras certo?

Rest seria uma e não teria umas novas?

Minha pergunta e como fica a logica dos verbs no front e no back, os GET, POST, PUT, DELETE.

Node temos o resp e req e no angular ou html5 puro?

Poderiam enviar os envios exatados onde se implementam essas partes de comunicaçao, usando diversas linguagens.

Uma outra duvida q gostaria de tornar realidade, mas nao sei como...seria transforma um app que aprendemos, como o do banco q usa CMD em uma app web, o cliente seria browser e o back toda a logica. principalmente em C++.

Isso, Eric.

HTTP é um protocolo, temos outros, como o WebSocket.

REST também é uma arquitetura opcional, vem ganhando muito espaço hoje em dia porque a API se torna muito genérica, e facilita a comunicação com diferentes aplicações (por exemplo, a mesma API pode alimentar um website e um aplicativo móvel sem muitos problemas). E como hoje grandes produtos possuem aplicativos variados, a responsabilidade pode ser melhor dividida.

Quanto aos verbos HTTP, geralmente a linguagem tem algo implementado para lidar com isso. No NodeJS, por exemplo, utilizamos muito um framework chamado Express, que possui métodos para reconhecer essas requisições HTTP. No Spring, um framework de Java, também temos algo semelhante (usa-se anotações).

Outra linguagem popular do back-end é a Go, que possui um pacote próprio para lidar com chamadas HTTP.

Já no front-end, o Angular trabalha com um pacote próprio chamado HttpClient. Funcionando de forma similar aos já citados métodos que linguagens e frameworks de back-end usam.

Quando estamos falando de front-end sem frameworks (HTML, CSS e JavaScript puros) podemos utilizar a Fetch API, e a mais antiga XMLHttpRequest.

A ideia de implementar uma aplicação com front-end e back-end, usando C++ é muito interessante. O que eu acho importante de notar é que C++ não é uma linguagem ideal para fazer uma API REST, geralmente utilizamos linguagens de alto nível (mais distantes da linguagem de máquina) para esse tipo de necessidade.

Mas a realidade é: contanto que a API e o front-end "falem" HTTP, você é livre para modelar como quiser. Dei uma pesquisada, e encontrei alguns recursos que podem te ajudar com o seu objetivo, senão resolverem, pelo menos podem te direcionar melhor: