webFiber is an Express inspired web framework build on top of Fasthttp, the fastest HTTP engine for Go. Designed to ease things up for fast development with zero memory allocation and performance in mind.
fiberapiangularweb环境:macos 10.15.4 + go 1.14.1 + fiber 1.11.1 + angular 9.1.6
新建项目
fiblar-demomd fiblar-demo && cd fiblar-demogo modgo mod init github.com/kiyonlin/fiblar-demomain.gopackage main
import (
"github.com/gofiber/fiber"
"log"
)
func main() {
// Create new Fiber instance
app := fiber.New()
// serve Single Page application on "/public"
// assume static file at dist folder
app.Static("/", "public")
// intercept api routes
apiGroup := app.Group("/api")
{
apiGroup.Get("/user", func(c *fiber.Ctx) {
c.JSON(fiber.Map{"id": 1, "name": "kiyon"})
})
}
// other routes just return `public/index.html`, angular will handle them
app.Get("/*", func(c *fiber.Ctx) {
if err := c.SendFile("public/index.html"); err != nil {
c.Next(fiber.ErrInternalServerError)
}
})
// Start server on http://localhost:3000
log.Fatal(app.Listen(3000))
}
angularangularng new webweb/angular.json{
"other-configs": {},
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "../public"
}
}
}angularwebpublicfiberpublicweb/src/app/app.component.tsapi// ...
export class AppComponent {
title = 'web';
user: any;
constructor(private http: HttpClient) {
this.http.get('/api/user').subscribe(data => this.user = data);
}
}/api/useruserweb/src/app/app.component.html<!-- ... -->
<!-- Resources -->
<h1>User</h1>
<p>{{user | json}}</p>
<h2>Resources</h2>
<p>Here are some links to help you get started:</p>
<!-- ... -->web/package.json{
"scripts": {
"build": "ng build --prod",
"build:watch": "ng build --watch"
}
}运行项目
.air.confroot = "."
tmp_dir = "tmp"
[build]
cmd = "go build -o ./tmp/main ./main.go"
bin = "tmp/main"
include_ext = ["go", "toml"]
exclude_dir = ["assets", "tmp", "vendor", "web"]aircd web && yarn run build:watchlocalhost:3000
总结
fiberangularwebfiberangularhtmlapiapiangular完整demo,以上。