Parcourir la source

feat: API 域名和前缀

runningwater il y a 5 mois
Parent
commit
908bac2c4b
2 fichiers modifiés avec 12 ajouts et 2 suppressions
  1. 3 0
      config/app.go
  2. 9 2
      routes/api.go

+ 3 - 0
config/app.go

@@ -27,6 +27,9 @@ func init() {
 
 			// 设置时区,JWT 里会使用,日志记录里也会使用到
 			"timezone": config.Env("TIMEZONE", "Asia/Shanghai"),
+
+			// API 域名,用以生成 API 链接 http://domain.com/api/v1/users
+			"api_domain": config.Env("API_DOMAIN", ""),
 		}
 	})
 }

+ 9 - 2
routes/api.go

@@ -6,14 +6,21 @@ import (
 
 	"github.com/runningwater/gohub/app/http/controllers/api/v1/auth"
 	"github.com/runningwater/gohub/app/http/middlewares"
+	"github.com/runningwater/gohub/pkg/config"
 
 	controllers "github.com/runningwater/gohub/app/http/controllers/api/v1"
 )
 
 // RegisterAPIRoutes 注册路由
-func RegisterAPIRoutes(router *gin.Engine) {
+func RegisterAPIRoutes(r *gin.Engine) {
 	// v1 路由组,所有 v1 版本的路由都放在这里
-	v1 := router.Group("/v1")
+	var v1 *gin.RouterGroup
+	if len(config.Get("app.api_domain")) == 0 {
+		v1 = r.Group("/api/v1")
+	} else {
+		v1 = r.Group("/v1")
+	}
+
 	// 全局限流中间件:每小时限流。这里是所有 API (根据 IP)请求加起来。
 	// 作为参考 Github API 每小时最多 60 个请求(根据 IP)。
 	// 测试时,可以调高一点。