fiberboot

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 3, 2020 License: MIT Imports: 2 Imported by: 0

README

fiberboot

FiberBoot 是一个能够简化 Fiber 框架下路由管理的库

核心思想是通过 FiberBoot 注册 Fiber 的实例和路由群组,然后在每个 Controller 的 init 中各自注册自己的路由回调函数,再统一由 FiberBoot 控制群组和路由回调函数的加载顺序,减少路由间的耦合

FiberBoot 是非线程安全的(因为 FiberBoot 的业务需要在 Fiber 服务启动前加载并运行完毕,所以无需考虑并发,也不建议在此期间出现并发问题)

Installation

$ go get -u github.com/gokit/fiberboot

Quick start

package main

import (
    "github.com/gofiber/fiber"
    "github.com/gokit/fiberboot"
    _ "github.com/gokit/fiberboot/example/controller" // 加载 controller 包下的 init 函数,注册路由相关的回调函数
)

func main() {
    app := fiber.New()

    // 注册默认的 Fiber 实例并运行
    fiberboot.Strap(app)

    app.Listen(3000)
}

controller

package controller

import (
    "github.com/gofiber/fiber"
    "github.com/gokit/fiberboot"
)

type IndexController struct{}

func init() {
    // 向默认的 Gin 中注册路由
    fiberboot.Route(new(IndexController).registerRoutes)
}

func (i *IndexController) registerRoutes(app *fiber.App) {
    app.Get("/", i.index)
}

func (IndexController) index(c *fiber.Ctx) {
    c.SendString("hello world")
}

注册路由群组

package controller

import (
    "github.com/gofiber/fiber"
    "github.com/gokit/fiberboot"
)

const GroupUser = "/user"
const GroupAdmin = "/admin"

func init() {
    fiberboot.Group(func(app *fiber.App) {
        app.AddGroup(GroupUser, app.Group("/user"))
        app.AddGroup(GroupAdmin, app.Group("/admin"))
    })
}

更多其他相关方法

// 注册一个指定 name 的 Group 实例
func AddGroup(name string, group *fiber.Group)

// 向指定的 Fiber 实例中注入中间件回调
func Middleware(callback func(app *fiber.App))

// 向指定的 Fiber 实例中注入路由回调
func Route(callback func(app *fiber.App))

// 向指定的 Fiber 实例中注入路由群组回调
func Group(callback func(app *fiber.App))

// 向指定 name 的路由群组中中注入路由回调
func GroupByName(groupName string, callback func(group *fiber.Group))

// 在注册 Fiber 实例后,启用引导程序引导回调,fiberboot 会优先调用路由群组的回调函数,然后再调用路由的回调函数
func Strap(app *fiber.App)

Documentation

Overview

Copyright 2019 The niqingyang Authors. All rights reserved. Use of this source code is governed by a MIT-style license that can be found in the LICENSE file. http://acme.top Author: niqingyang [email protected] TIME: 2019/10/1 10:08

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddGroup

func AddGroup(name string, group *fiber.Group)

注册路由群组

func GetGroup

func GetGroup(name string) *fiber.Group

获取指定路由群组

func Group

func Group(callback func(app *fiber.App))

向指定的 GIN 实例中注入路由群组回调

func GroupByName

func GroupByName(groupName string, callback func(group *fiber.Group))

向指定的路由群组中中注入路由回调

func Middleware

func Middleware(callback func(app *fiber.App))

向指定的 GIN 实例中注入中间件回调

func Route

func Route(callback func(app *fiber.App))

向指定的 GIN 实例中注入路由回调

func Strap

func Strap(app *fiber.App)

在注册 Fiber 实例后,启用引导程序引导回调

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳