9.6 KiB
Fiber es un framework web inspirado en Express construido sobre Fasthttp, el motor HTTP más rápido para Go. Diseñado para facilitar las cosas para un desarrollo rápido con cero asignación de memoria y rendimiento en mente.
⚡️ Inicio rápido
package main
import "github.com/gofiber/fiber"
func main() {
app := fiber.New()
app.Get("/", func(c *fiber.Ctx) {
c.Send("Hello, World!")
})
app.Listen(3000)
}
⚙️ Instalación
En primer lugar, descargue e instale Go. Se requiere 1.11
o superior.
La instalación se realiza con el comando go get
:
go get github.com/gofiber/fiber
🤖 Puntos de referencia
Estas pruebas son realizadas por TechEmpower y Go Web . Si desea ver todos los resultados, visite nuestro Wiki .
🎯 Características
- Enrutamiento robusto
- Servir archivos estáticos
- Rendimiento extremo
- Poca huella de memoria
- Puntos finales de API Express
- Middleware y próximo soporte
- Programación rápida del lado del servidor
- Y mucho más, explore Fiber
💡 Filosofía
Los nuevos gophers que hacen el cambio de Node.js a Go están lidiando con una curva de aprendizaje antes de que puedan comenzar a construir sus aplicaciones web o microservicios. Fiber, como un marco web , fue creado con la idea del minimalismo y sigue el camino de UNIX , para que los nuevos gophers puedan ingresar rápidamente al mundo de Go con una cálida y confiable bienvenida.
Fiber está inspirado en Expressjs, el framework web más popular en Internet. Combinamos la facilidad de Express y el rendimiento bruto de Go. Si alguna vez ha implementado una aplicación web en Node.js ( utilizando Express.js o similar ), muchos métodos y principios le parecerán muy comunes .
👀 Ejemplos
A continuación se enumeran algunos de los ejemplos comunes. Si desea ver más ejemplos de código, visite nuestro repositorio de Recetas o nuestra documentación de API .
Archivos estáticos
func main() {
app := fiber.New()
app.Static("./public")
// => http://localhost:3000/js/script.js
// => http://localhost:3000/css/style.css
app.Static("/prefix", "./public")
// => http://localhost:3000/prefix/js/script.js
// => http://localhost:3000/prefix/css/style.css
app.Listen(3000)
}
Enrutamiento
func main() {
app := fiber.New()
// GET /john
app.Get("/:name", func(c *fiber.Ctx) {
fmt.Printf("Hello %s!", c.Params("name"))
// => Hello john!
})
// GET /john
app.Get("/:name/:age?", func(c *fiber.Ctx) {
fmt.Printf("Name: %s, Age: %s", c.Params("name"), c.Params("age"))
// => Name: john, Age:
})
// GET /api/register
app.Get("/api*", func(c *fiber.Ctx) {
fmt.Printf("/api%s", c.Params("*"))
// => /api/register
})
app.Listen(3000)
}
Middleware
func main() {
app := fiber.New()
// Match any post route
app.Post(func(c *fiber.Ctx) {
user, pass, ok := c.BasicAuth()
if !ok || user != "john" || pass != "doe" {
c.Status(403).Send("Sorry John")
return
}
c.Next()
})
// Match all routes starting with /api
app.Use("/api", func(c *fiber.Ctx) {
c.Set("Access-Control-Allow-Origin", "*")
c.Set("Access-Control-Allow-Headers", "X-Requested-With")
c.Next()
})
// Optional param
app.Post("/api/register", func(c *fiber.Ctx) {
username := c.Body("username")
password := c.Body("password")
// ..
})
app.Listen(3000)
}
Manejo 404
func main() {
app := fiber.New()
// Serve static files from "public" directory
app.Static("./public")
// Last middleware
app.Use(func (c *fiber.Ctx) {
c.SendStatus(404) // => 404 "Not Found"
})
app.Listen(3000)
}
Respuesta JSON
func main() {
app := fiber.New()
type User struct {
Name string `json:"name"`
Age int `json:"age"`
}
// Serialize JSON
app.Get("/json", func (c *fiber.Ctx) {
c.JSON(&User{"John", 20})
})
app.Listen(3000)
}
💬 Medios
- Bienvenido a Fiber: un marco web con estilo Express.js escrito en Go with ❤️ por Vic Shóstak, 03 feb 2020
👍 Contribuir
Si quiere agradecer y/o apoyar el desarrollo activo de la Fiber
:
- Agregue una estrella de GitHub al proyecto.
- Tuitea sobre el proyecto en tu Twitter.
- Escriba una reseña o tutorial en Medium , Dev.to o blog personal.
- Ayúdanos a traducir este
README
y API Docs a otro idioma.
☕ Supporters
ToishY |
⭐️ Estrellas
Licencia
Fiber
es un software gratuito y de código abierto licenciado bajo la Licencia MIT.