El desarrollo web es uno de los muchos campos en los que puede utilizar Go. Muchas empresas y proyectos utilizan Go en el backend de sus aplicaciones web, principalmente por su velocidad, facilidad de uso y ecosistema de paquetes.

los red/http El paquete tiene la mayor parte de la funcionalidad que necesitará para crear aplicaciones web en Go. Puede usar otros paquetes de la biblioteca estándar rica en funciones. los codificación paquete maneja la conversión de datos de bajo nivel y el html El paquete le permite interactuar con páginas web.

Más allá de esto, el ecosistema de paquetes de terceros de Go proporciona funciones adicionales para ayudar al desarrollo web.

1. El marco de la ginebra

Ginebra es uno de los paquetes de desarrollo web más populares de Go. Gin es un micromarco de alto rendimiento para crear aplicaciones web y microservicios en Go.

Gin es rápido y proporciona renderizado integrado, middleware y funcionalidad de validación JSON. Cuenta con una fácil gestión de errores y extensibilidad. Puede documentar sus aplicaciones de Gin con la especificación y la arrogancia de OpenAPI3.

instagram viewer

Gin presenta una API similar a Martini y el proyecto afirma ser cuarenta veces más rápido. Para los microservicios, puede reutilizar los componentes modulares de Gin para desarrollar canalizaciones de gestión de solicitudes.

Puede instalar el marco Gin con este comando:

Vamos obtener github.com/gin-gonic/gin

Aquí se explica cómo configurar un punto final de solicitud simple con el marco Gin.

importar (
"github.com/gin-gonic/gin"
"Iniciar sesión"
"red/http"
)

funciónprincipal() {
enrutador: = ginebra. Defecto()

enrutador GET("/hola", función(contexto *ginebra. Contexto) {
contexto. JSON(http. Estado OK, ginebra. H{"success": "Llegó con éxito al punto final"})
})

Iniciar sesión. Fatallén (http. Escuchar y servir (":8080", nulo))
}

Puede crear una instancia de enrutador con el Defecto metodo de la Ginebra paquete. los OBTENER El método para solicitudes GET toma la ruta (punto final) y una declaración de función de controlador. Esta función de ejemplo devuelve un 200 Código de estado HTTP al cliente y una respuesta JSON exitosa en el cuerpo de la respuesta.

2. El marco de fibra

Fibra es un seguro de memoria, Similar a ExpressJS marco basado en el increíblemente rápido rápidohttp paquete. Ofrece un gran rendimiento y está dirigido a principiantes y desarrolladores experimentados de back-end de Javascript.

Fiber presenta la mayor parte de la funcionalidad que necesitará en un marco de back-end. Maneja el enrutamiento, la agrupación de solicitudes, la validación, las plantillas, los ganchos, el manejo de errores y mucho más. Fiber es extensible y puedes hacer que Fiber sea más rápido usando un codificador y decodificador personalizado.

Instale la última versión (v2) del marco de fibra con este comando:

Vamos obtener github.com/gofiber/fiber/v2

Así es como puedes configurar un extremo de solicitud GET simple con el marco de Fiber.

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

funciónprincipal() {
aplicación := fibra. Nuevo()

aplicación Obtener("/hola", función(ctx *fibra. ctx)error {
devolver ctx. SendString("Hola")
})

Iniciar sesión. fatal (ap. Escuchar(":8080"))
}

los Nuevo El método devuelve una nueva instancia de una aplicación de Fiber. los Obtener El método es para configurar OBTENER peticiones. En este caso, el /hello punto final devuelve la cadena Hola.

Configuró la aplicación para escuchar en el puerto puerto localhost 8080 con el Escuchar método de la aplicación.

3. El marco de iris

Iris es un marco web multiplataforma, eficiente, completo y bien diseñado. Puede usarlo para crear aplicaciones web y API portátiles de alto rendimiento en Go. Al igual que Fiber, Iris is ExpressJS inspira algunos de los patrones de diseño en Iris.

Puede crear aplicaciones sin servidor rápidamente con Iris e implementarlas en AWS, Netlify y muchos otros servicios. El paquete Iris tiene una aplicación CLI que puede usar para recargar en vivo las plantillas de Iris y monitorear su aplicación.

El paquete Iris tiene características que hacen que el desarrollo sea extremadamente fácil. Iris tiene una API similar a Sinatra que se ocupa del registro, el enrutamiento, las sesiones y los Websockets. También es compatible con GRPC, servicio de archivos, autenticación, autorización y funciones de prueba.

Ejecute este comando en la terminal de su espacio de trabajo para instalar el marco Iris en sus módulos Go.

Vamos obtener github.com/kataras/iris/v12@lastest

Así es como puede configurar un OBTENER solicitud con el marco Iris para ejecutar en el puerto localhost 8080.

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

funciónprincipal() {
aplicación: = iris. Nuevo() // nueva instancia de Iris

aplicación Identificador("OBTENER", "/hola", función(iris ctx. Contexto) {
_, error: = ctx. JSON(iris. Mapa{"mensaje": "hola"})

si error! = nulo {
devolver
}
})

error := aplicación. Corre (iris. Dirección(":8080"), iris. SinErrorServidor (iris. ErrServidorCerrado))

si error! = nulo {
devolver
}
}

los aplicación variable es la instancia de una nueva aplicación de Iris. los OBTENER controlador devuelve un mensaje JSON para solicitar en el /hello ruta.

4. El marco de Beego

beego es un marco Go fácil de usar, inteligente y de alto rendimiento para crear aplicaciones web. Beego simplifica la creación de aplicaciones modulares. Viene con un ORM (mapeador relacional de objetos) y un enrutador incorporados, junto con la funcionalidad de creación de plantillas.

Beego integra capacidades específicas de Go con interfaces e incrustación de estructuras. Tiene una excelente estructura de API, optimizada para la velocidad con soporte e internalización de sesión e implementación.

Beego está muy extendido y muchas empresas, desde Opera hasta Huawei, Tencent y Weico, utilizan Beego en la producción.

Puede usar este comando para instalar Beego Framework en su proyecto.

Vamos obtener -u github.com/beego/beego/v2

Así es como puede configurar un simple OBTENER solicite el punto final de la API con el marco Beego.

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

escribe Instancia del controlador estructura {
web. Controlador // punto de entrada para la aplicación beego
}

función(controlador *Instancia de controlador)Obtener() {
controlador. ctx. WriteString("hola mundo")
}

funciónprincipal() {
web. Enrutador("/hola", &ControllerInstance{}) // montaje con beego
web. Correr() // ejecutando la aplicación beego
}

los Instancia del controlador struct es el punto de entrada de la aplicación Beego. los Obtener La función handler contiene la lógica para un OBTENER solicitud a la /hello punto final Devuelve la cadena "hola mundo" como respuesta.

5. El Marco Revel

Jaranear brilla por la flexibilidad que proporciona para crear aplicaciones web. Puede usar el enrutamiento seguro de tipos de Revel, construir controladores y usar Ir plantillas con Revel.

Revel proporciona funcionalidad para el enrutamiento, la codificación y decodificación sencilla de JSON y el manejo de sesiones. También incluye funciones para manejar el almacenamiento en caché, la depuración y la prueba de aplicaciones web. Revel tiene un paquete CLI para crear CLI para sus aplicaciones. Puede servir archivos estáticos con Revel y crear aplicaciones de chat con su funcionalidad Websocket.

Instale el marco Revel en el directorio de su proyecto con este comando:

Vamos obtener github.com/revel/revel

Es fácil configurar una aplicación Revel. Aquí hay una función de controlador simple para un OBTENER punto final de solicitud con el marco Revel.

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

escribe Modelo estructura { // estructura de modelo simple
Mensaje cuerda`json:"mensaje"`
Descripción cuerda`json:"descripción"`
}

escribe aplicación estructura {
*jaranear. Controlador // punto de entrada para las solicitudes
}

función(aplicación aplicación)Hola()jaranear.Resultado {
modelo := modelo{
Mensaje: "éxito",
Descripción: "¡Hola!, Mundo",
}

aplicación Respuesta. ContentType = "aplicación/json"
devolver aplicación RenderJSON(modelo)
}

los aplicación struct es el punto de entrada de la aplicación Revel. Sus controladores implementarán la estructura de la aplicación. El tipo de contenido de la respuesta es JSON y el Hola La función del controlador devuelve una estructura JSON codificada.

Cuidado con la diferencia entre enrutadores y marcos

Encontrará muchos paquetes web en el ecosistema Go, la mayoría de los cuales son enrutadores o marcos. Los enrutadores son para recibir solicitudes a través del protocolo HTTP.

Necesitará paquetes adicionales para trabajar con enrutadores. Al igual que los de este tutorial, la mayoría de los marcos incluyen enrutadores integrados junto con otras funciones.