O desenvolvimento da Web é um dos muitos campos em que você pode usar o Go. Muitas empresas e projetos usam Go no backend de seus aplicativos da Web, principalmente por sua velocidade, facilidade de uso e ecossistema de pacotes.

o net/http pacote tem a maioria das funcionalidades que você precisa para construir aplicações web em Go. Você pode usar outros pacotes da biblioteca padrão rica em recursos. o codificação pacote lida com conversão de dados de baixo nível e o html pacote permite que você interaja com páginas da web.

Além disso, o ecossistema de pacotes de terceiros da Go fornece recursos extras para ajudar no desenvolvimento da web.

1. A estrutura do gin

Gin é um dos pacotes de desenvolvimento web mais populares do Go. Gin é um microframework de alto desempenho para a construção de aplicativos web e microsserviços em Go.

O Gin é rápido e fornece renderização integrada, middleware e funcionalidade de validação JSON. Possui fácil gerenciamento de erros e extensibilidade. Você pode documentar seus aplicativos Gin com as especificações e arrogância do OpenAPI3.

Gin apresenta uma API semelhante ao Martini, e o projeto afirma ser quarenta vezes mais rápido. Para microsserviços, você pode reutilizar os componentes modulares do Gin para desenvolver pipelines de manipulação de solicitações.

Você pode instalar o framework Gin com este comando:

vai obtenha github.com/gin-gonic/gin

Veja como configurar um endpoint de solicitação simples com a estrutura Gin.

importar (
"github.com/gin-gonic/gin"
"registro"
"rede/http"
)

funçãoa Principal() {
roteador := gin. Predefinição()

roteador. GET("/olá", função(contexto *gin. Contexto) {
contexto. JSON(http. StatusOK, gim. H{"sucesso": "Atingiu com sucesso o ponto final"})
})

registro. Fataln (http. Ouvir e Servir(":8080", nada))
}

Você pode criar uma instância de roteador com o Predefinição método do Gin pacote. o PEGUE O método para solicitações GET recebe o caminho (endpoint) e uma declaração de função do manipulador. Esta função de exemplo retorna um 200 Código de status HTTP para o cliente e uma resposta JSON bem-sucedida no corpo da resposta.

2. A estrutura de fibra

Fibra é uma memória segura, ExpressJS-like estrutura construída no incrivelmente rápido http rápido pacote. Ele oferece ótimo desempenho e visa desenvolvedores de back-end Javascript iniciantes e experientes.

A fibra apresenta a maioria das funcionalidades necessárias em uma estrutura de back-end. Ele lida com roteamento, agrupamento de solicitações, validação, modelagem, ganchos, tratamento de erros e muito mais. A fibra é extensível e você pode tornar a fibra mais rápida usando um codificador e um decodificador personalizados.

Instale a versão mais recente (v2) do framework Fiber com este comando:

vai obtenha github.com/gofiber/fiber/v2

Veja como você pode configurar um endpoint de solicitação GET simples com a estrutura Fiber.

importar "github.com/gofiber/fiber/v2"

funçãoa Principal() {
app := fibra. Novo()

aplicativo. Get("/olá", função(ctx *fibra. Ctx)erro {
Retorna ctx. SendString("Olá")
})

registro. Fatal (aprox. Ouço(":8080"))
}

o Novo retorna uma nova instância de um aplicativo Fiber. o Pegue método é para configurar PEGUE solicitações de. Neste caso, o /hello endpoint retorna a string Olá.

Você configura o aplicativo para escutar na porta localhost da porta 8080 com o Ouço método do aplicativo.

3. A estrutura da íris

O Iris é um framework web multiplataforma, eficiente, completo e bem projetado. Você pode usá-lo para criar APIs portáteis e de alto desempenho e aplicativos da Web em Go. Assim como o Fiber, o Iris is ExpressJS inspira alguns dos padrões de design do Iris.

Você pode criar aplicativos sem servidor rapidamente com o Iris e implantá-los na AWS, Netlify e muitos outros serviços. O pacote Iris tem um aplicativo CLI que você pode usar para recarregar modelos Iris ao vivo e monitorar seu aplicativo.

O pacote Iris possui recursos que tornam o desenvolvimento extremamente fácil. O Iris possui uma API semelhante ao Sinatra que atende a logs, roteamento, sessões e Websockets. Ele também suporta GRPC, serviço de arquivo, autenticação, autorização e funcionalidade de teste.

Execute este comando no terminal de sua área de trabalho para instalar a estrutura Iris em seus módulos Go.

vai obtenha github.com/kataras/iris/v12@lastest

Veja como você pode configurar um PEGUE request com o framework Iris para rodar na porta localhost 8080.

importar "github.com/kataras/iris/v12"

funçãoa Principal() {
app := íris. Novo() // nova instância Iris

aplicativo. Handle("GET", "/olá", função(ctx íris. Contexto) {
_, erro := ctx. JSON(íris. Mapa{"message": "olá"})

E se err!= nada {
Retorna
}
})

erro := aplicativo. Executar (íris. Addr(":8080"), íris. WithoutServerError (iris. ErrServerClosed))

E se err!= nada {
Retorna
}
}

o aplicativo variável é a instância de um novo aplicativo Iris. o PEGUE handler retorna uma mensagem JSON para solicitar no /hello rota.

4. A Estrutura Beego

Beego é uma estrutura Go fácil de usar, inteligente e de alto desempenho para criar aplicativos da Web. A Beego simplifica a construção de aplicativos modulares. Ele vem com um ORM (mapeador relacional de objeto) e roteador integrados, juntamente com a funcionalidade de modelagem.

O Beego integra recursos específicos do Go com interfaces e incorporação de estruturas. Possui uma ótima estrutura de API, otimizada para velocidade com suporte e internalização de sessão e implantação.

O Beego é difundido e muitas empresas, da Opera à Huawei, Tencent e Weico, usam o Beego na produção.

Você pode usar este comando para instalar o Beego Framework em seu projeto.

vai get -u github.com/beego/beego/v2

Veja como você pode configurar um simples PEGUE solicite o endpoint da API com o framework Beego.

importar "github.com/beego/beego/v2/server/web"

modelo ControllerInstance estrutura {
rede. Controlador // ponto de entrada para o aplicativo beego
}

função(controlador *ControllerInstance)Pegue() {
controlador. Ctx. WriteString("Olá mundo")
}

funçãoa Principal() {
rede. Router("/hello", &ControllerInstance{}) // montando com beego
rede. Corre() // executando o aplicativo beego
}

o ControllerInstance struct é o ponto de entrada do aplicativo Beego. o Pegue função handler contém a lógica para um PEGUE pedido ao /hello ponto final. Ele retorna a string “hello world” como resposta.

5. A estrutura de revelação

Deleite-se brilha pela flexibilidade que oferece para a construção de aplicações web. Você pode usar o roteamento de tipo seguro do Revel, construir controladores e usar Modelos Go com Revel.

O Revel fornece funcionalidade para roteamento, codificação e decodificação JSON fáceis e manipulação de sessão. Ele também inclui funções para lidar com armazenamento em cache, depuração e teste de aplicativos da web. O Revel tem um pacote de CLI para criar CLIs para seus aplicativos. Você pode servir arquivos estáticos com o Revel e criar aplicativos de bate-papo com sua funcionalidade Websocket.

Instale o framework Revel no diretório do seu projeto com este comando:

vai obtenha github.com/revel/revel

É fácil configurar um aplicativo Revel. Aqui está uma função de manipulador simples para um PEGUE request endpoint com o framework Revel.

importar (
"github.com/revel/revel"
)

modelo Modelo estrutura { // estrutura de modelo simples
Mensagem corda`json:"mensagem"`
Descrição corda`json:"descrição"`
}

modelo Aplicativo estrutura {
*revelar. Controlador // ponto de entrada para os pedidos
}

função(Aplicativo)Olá()deleitar-se.Resultado {
modelo := Modelo{
Mensagem: "sucesso",
Descrição: "Olá!, Mundo",
}

aplicativo. Resposta. ContentType = "aplicativo/json"
Retorna aplicativo. RenderJSON(modelo)
}

o Aplicativo struct é o ponto de entrada do aplicativo Revel. Seus manipuladores implementarão a estrutura do aplicativo. O tipo de conteúdo da resposta é JSON e o Olá A função handler retorna uma estrutura JSON codificada.

Cuidado com a diferença entre roteadores e frameworks

Você encontrará muitos pacotes da Web no ecossistema Go, a maioria dos quais são roteadores ou estruturas. Os roteadores servem para receber solicitações por meio do protocolo HTTP.

Você precisará de pacotes adicionais para trabalhar com roteadores. Como os deste tutorial, a maioria das estruturas inclui roteadores integrados juntamente com outras funcionalidades.