Olá Web Developers! Vamos ver o que é e como utilizar o Tw Dev Server
para te ajudar na hora de estudar programação.
O que é o Tw Dev Server?
Quando estamos trabalhando com desenvolvimento web precisamos de pelo menos um servidor de arquivos estáticos para nossos arquivos HTML, CSS, JavaScript, imagens, etc. Isso porque se abrirmos nosso HTML diretamente no navegador, certas operações não poderão ser feitas pelo JavaScript por questões de segurança.
Além disso, também é comum a necessidade de uma API para fazermos requisições, onde recuperamos ou salvamos dados quando estamos estudando desenvolvimento web ou criando um aplicativo mobile.
Para que essas necessidades básicas fossem resolvidas surgiu o Tw Dev Server
. Ele veio com a finalidade de iniciar um servidor estático para nossos arquivos e também servir como um servidor que recebe requisições através de uma API. Com essa API podemos simular um servidor com banco de dados que recebe requisições para recuperar, salvar, modificar e apagar dados (CRUD). E tudo isso sem precisar de nenhuma configuração ou instalação complicada!
Instalando o Tw Dev Server
O Tw Dev Server
pode ser baixado pelo NPM ou como uma extensão do VS Code
.
No NPM, para instalar globalmente em sua máquina, execute:
$ npm install -g @treinaweb/tw-dev-server
Assim que você tiver instalado, seu terminal terá o comando tw-dev-server
disponível.
Iniciando um servidor de arquivos estáticos
Para iniciar um servidor de arquivos estáticos basta abrir o seu terminal na pasta raiz do seu projeto e executar:
$ tw-dev-server
Com isso nós já teremos nosso servidor rodando.
Assim como você pode ver na imagem acima, ele irá mostrar como você pode acessar seus arquivos pelo navegador. Na mesma máquina basta acessar http://localhost:3002
. Entretanto, caso queira acessar de outra máquina ou dispositivo que estejam na mesma rede, basta acessar o endereço que é mostrado logo abaixo.
Como se pode notar, ele utiliza por padrão a porta 3002, mas isso pode ser alterado. Por exemplo, caso a gente queira utilizar a porta 4200:
$ tw-dev-server --port=4200
Para encerrar basta pressionar Ctrl + C
.
Curso JavaScript Básico
Conhecer o cursoLive Reload e Browser Sync
Quando estamos escrevendo nosso HTML, CSS e JavaScript, pode ser meio cansativo ter que ficar atualizando o navegador a todo momento para ver o resultado do nosso trabalho.
Para isso o Tw Dev Server
também possui a funcionalidade conhecida como Live Reload
. Com essa função ativada, seu navegador vai atualizar automaticamente assim que você alterar algum arquivo HTML ou JavaScript. Caso a alteração seja em um arquivo CSS, o CSS da página é atualizado mesmo sem precisar atualizar o navegador.
Para ativar essa função, basta adicionar --live
ao comando.
$ tw-dev-server --live
Além disso, também há a possibilidade de você querer testar sua página em vários navegadores, dispositivos ou tamanhos de janelas diferentes. E para facilitar isso temos a função Browser Sync
, que vai sincronizar todos os navegadores que estiverem acessando a sua página.
Com isso você pode acessar a sua página a partir de vários navegadores, até mesmo do seu celular, e tudo o que você fizer em um navegador (como escrever, clicar num botão ou rolar a página) também acontecerá nos demais navegadores! Essa função também atualiza todos os navegadores quando você altera o seu código, não precisando ativar o --live
.
Para ativar o Browser Sync
basta adicionar --sync
ao comando:
$ tw-dev-server --sync
Fazendo Requisições
Uma das principais funcionalidades do Tw Dev Server
é disponibilizar uma API para podermos fazer requisições. E isso sem precisar configurar um back end ou um banco de dados. Porém, lembre-se que essa é uma ferramenta para facilitar nos estudos, portanto não deve ser usada para um produto que será lançado, pois não é otimizada para isso.
Podemos fazer operações GET
, POST
, PUT
e DELETE
. Para que possamos fazer requisições para a API, basta adicionar /api
ao final do endereço que utilizamos para acessar os arquivos estáticos.
Em resumo, se você acessa os arquivos por http://localhost:3002
, as requisições devem ser feitas a http://localhost:3002/api
.
Logo após o /api
nós adicionamos os nomes que quisermos. Isso será para nos organizarmos.
Painel Visual do Tw Dev Server
Para testar as requisições, ver seus dados, modificá-los, etc, você pode usar a ferramenta visual do Tw Dev Server
. Basta acessar https://treinaweb.github.io/tw-dev-server/. Uma vez que o seu servidor estiver rodando, a bolinha ao lado do endereço aparecerá verde.
Criando Dados
Imagine que a gente esteja num projeto de biblioteca e que queremos fazer uma operação POST
para salvar um livro. Podemos, por JavaScript, fazer uma requisição com o seguinte código:
let livro = {
"nome": "GraphQL: A revolucionária linguagem de consulta e manipulação de dados para APIs",
"autor": "Akira Hanashiro"
};
fetch('http://localhost:3002/api/biblioteca/livros', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify(livro)
})
.then(response => response.json())
.then(console.log);
Teremos como resposta um objeto com um campo id
para identificar o dado recém cadastrado. Ele é gerado automaticamente pelo Tw Dev Server
.
Não apenas por JavaScript, como também podemos fazer essa operação pela nossa ferramenta visual:
Buscando Dados
Para fazermos uma requisição GET
e recuperar todos os livros, bastaria fazer:
fetch('http://localhost:3002/api/biblioteca/livros')
.then(response => response.json())
.then(console.log);
E, claro, também podemos fazer isso na nossa ferramenta visual.
Porém, caso você queira que seja retornado apenas um único dado, pode-se passar o id
do elemento. Por exemplo: http://localhost:3002/api/biblioteca/livros?id=1591291655803
.
Atualizando Dados
Para atualizar um dado basta fazer uma operação PUT
, usar a mesma URL e indicar nela o id
do dado que você quer atualizar:
let novoLivro = {...};
fetch('http://localhost:3002/api/biblioteca/livros?id=1591291655803', {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify(novoLivro)
})
.then(response => response.json())
.then(console.log);
Assim que executar essa requisição teremos como resposta o dado atualizado.
Curso SonarQube - Análise de Qualidade de Código
Conhecer o cursoApagando Dados
Por fim temos a função de apagar dados. Para isso basta fazer uma requisição DELETE
passando o id
do dado que se quer apagar.
fetch('http://localhost:3002/api/biblioteca/livros?id=1591291655803', {
method: 'DELETE',
})
.then(response => response.json())
.then(console.log);
Caso você queira apagar todos os dados de uma coleção, basta passar all
no lugar do id
fetch('http://localhost:3002/api/biblioteca/livros?id=all', {
method: 'DELETE',
})
.then(response => response.json())
.then(console.log);
Em conclusão, o Tw Dev Server
é uma ótima ferramenta que pode se aliar aos seus estudos em desenvolvimento web e mobile, seja servindo arquivos ou simulando um back end com api e banco de dados. Também pode ser usado para fazer testes caso você esteja desenvolvendo um front mas o back end ainda não tem uma api pronta para te retornar dados.