路由
介绍
这是一个文档先行的框架,所有功能先写文档才方便写代码。
定义路由
进入目录 protobuf/api
新建你的文件 protobuf/api/api_public.proto
syntax = "proto3";
package api;
import "http_config.proto";
option go_package = "github.com/go-home-admin/go-admin/generate/proto/api";
service Public {
  // 这里是路由分组,可以统一在app/providers/route_provider.go设置前缀和中间件
  option (http.RouteGroup) = "api";
  // 测试接口1, 注释会体现到文档上
  rpc Home(HomeRequest)returns(HomeResponse){
    option (http.Get) = "/";
  }
  // 测试接口2
  rpc Test(HomeRequest)returns(HomeResponse){
    //  option (http.Get)
    //  option (http.Head)
    //  option (http.Post)
    //  option (http.Put)
    //  option (http.Delete)
    //  option (http.Options)
    option (http.Post) = "/test";
  }
}
message HomeRequest {
  // 参数文档
  int64 id = 1;
}
message HomeResponse {
  // 参数文档1
  string start_time = 1;
  // 参数文档2
  string tip = 2;
}生成运行代码
执行命令 make gen 输出如下
go-admin on  develop [!?] via 🐹 v1.18 
❯ make gen
toolset  make:protoc
toolset  make:route
toolset  make:bean
toolset  make:swagger
gen openapi.json to /Users/lv/Desktop/github.com/go-admin/web/swagger.json
如果你的电脑未安装Makefile, 也可以逐一手动执行命令
toolset  make:protoc
toolset  make:route
toolset  make:bean
toolset  make:swagger到这里,新增的接口已经可以正常运行了,只是没有逻辑也没有输出任何内容。需要你进入http 目录下,修改新生成的文件,补充逻辑。
设置中间件
进入文件 app/providers/route_provider.go, 修改您的中间件, 如果你的api分组不需要前缀或者中间件,可以不用修改。
package providers
import (
    "github.com/go-home-admin/go-admin/routes"
    "github.com/go-home-admin/home/bootstrap/providers"
)
// Route 路由服务
// @Bean
type Route struct {
    *providers.RouteProvider `inject:""`
}
// Init
// 设置路由的前缀+中间件
// 中间件使用http/kernel.go下的分组名称
// 如果不设置, 默认没有前缀
func (a *Route) Init() {
    a.LoadRoute(routes.GetAllProvider())
    a.Group("admin").Prefix("/admin").Middleware("admin")
    a.Group("admin-public").Prefix("/admin")
}
 
           GO 全栈框架封装
GO 全栈框架封装 
         
             
             关于 LearnKu
                关于 LearnKu
               
                     
                     
                     粤公网安备 44030502004330号
 粤公网安备 44030502004330号 
 
推荐文章: