Chegou a hora de sairmos da teoria e colocarmos a mão na massa! Nesta aula, vamos preparar o ambiente do nosso projeto e escrever o código necessário para colocar um servidor web funcional de pé utilizando apenas as ferramentas nativas do Go.
O primeiro passo é criar um local organizado para guardar os arquivos da nossa API. Para este exemplo, faremos o seguinte:
api_alunos.Nota: Fique à vontade para escolher outro diretório no seu computador ou utilizar o nome de sua preferência para a pasta, se assim desejar.
Com a pasta criada, precisamos abrir esse diretório dentro do nosso editor de código para começar a trabalhar:
api_alunos que acabamos de criar e clique em abrir.Para que o Go consiga gerenciar o nosso projeto, dependências e compilações de forma correta, precisamos inicializar um módulo. Vamos fazer isso através do terminal integrado do VSCode:
Ctrl + ` (ou indo no menu superior em Terminal -> New Terminal).go mod init api_alunos
Esse comando vai gerar um arquivo chamado go.mod na raiz da sua pasta, indicando que este diretório agora é um módulo oficial do Go.
Agora, crie um novo arquivo dentro da pasta chamado main.go. Este será o ponto de partida de toda a nossa aplicação. Abra o arquivo e digite a estrutura de código abaixo:
// Pacote principal da aplicação
package main
// Importações dos pacotes nativos
import (
"fmt"
"net/http"
)
// Função principal que inicia o programa
func main() {
// Exibe uma mensagem no terminal informando o funcionamento do servidor
fmt.Println("Servidor em execução no endereço: http://localhost:8080")
// Configura e inicia o servidor HTTP na porta 8080
// O valor nil indica que usaremos o roteador padrão do pacote http
http.ListenAndServe(":8080", nil)
}
Com o arquivo salvo, volte ao seu terminal do VSCode e digite o comando para executar o programa:
go run main.go
Você verá a mensagem de confirmação no terminal. O cursor ficará "travado", o que significa que o seu servidor Go está ativo e aguardando conexões na porta 8080!
Você pode acompanhar cada etapa descrita acima no vídeo a seguir: