This is an automated email from the ASF dual-hosted git repository.

linkinstar pushed a commit to branch feat/1.4.5/file
in repository https://gitbox.apache.org/repos/asf/answer.git


The following commit(s) were added to refs/heads/feat/1.4.5/file by this push:
     new e470b63f feat(server): add API base URL configuration and update routes
e470b63f is described below

commit e470b63f42126c45b6a21a99d8faf41b79ddf1b1
Author: LinkinStars <[email protected]>
AuthorDate: Fri Feb 28 17:07:46 2025 +0800

    feat(server): add API base URL configuration and update routes
---
 internal/base/server/config.go             |  3 ++-
 internal/base/server/http.go               | 12 ++++++------
 internal/controller/template_controller.go | 11 ++++++-----
 internal/install/install_server.go         | 12 ++++++------
 4 files changed, 20 insertions(+), 18 deletions(-)

diff --git a/internal/base/server/config.go b/internal/base/server/config.go
index baf6fb77..32b1a040 100644
--- a/internal/base/server/config.go
+++ b/internal/base/server/config.go
@@ -26,5 +26,6 @@ type HTTP struct {
 
 // UI ui config
 type UI struct {
-       BaseURL string `json:"base_url" mapstructure:"base_url" yaml:"base_url"`
+       BaseURL    string `json:"base_url" mapstructure:"base_url" 
yaml:"base_url"`
+       APIBaseURL string `json:"api_base_url" mapstructure:"api_base_url" 
yaml:"api_base_url"`
 }
diff --git a/internal/base/server/http.go b/internal/base/server/http.go
index 2b455a1f..088bbc9e 100644
--- a/internal/base/server/http.go
+++ b/internal/base/server/http.go
@@ -62,30 +62,30 @@ func NewHTTPServer(debug bool,
 
        rootGroup := r.Group("")
        swaggerRouter.Register(rootGroup)
-       static := r.Group("")
+       static := r.Group(uiConf.APIBaseURL)
        static.Use(avatarMiddleware.AvatarThumb(), 
authUserMiddleware.VisitAuth())
        staticRouter.RegisterStaticRouter(static)
 
        // The route must be available without logging in
-       mustUnAuthV1 := r.Group("/answer/api/v1")
+       mustUnAuthV1 := r.Group(uiConf.APIBaseURL + "/answer/api/v1")
        answerRouter.RegisterMustUnAuthAnswerAPIRouter(authUserMiddleware, 
mustUnAuthV1)
 
        // register api that no need to login
-       unAuthV1 := r.Group("/answer/api/v1")
+       unAuthV1 := r.Group(uiConf.APIBaseURL + "/answer/api/v1")
        unAuthV1.Use(authUserMiddleware.Auth(), 
authUserMiddleware.EjectUserBySiteInfo())
        answerRouter.RegisterUnAuthAnswerAPIRouter(unAuthV1)
 
        // register api that must be authenticated but no need to check account 
status
-       authWithoutStatusV1 := r.Group("/answer/api/v1")
+       authWithoutStatusV1 := r.Group(uiConf.APIBaseURL + "/answer/api/v1")
        
authWithoutStatusV1.Use(authUserMiddleware.MustAuthWithoutAccountAvailable())
        
answerRouter.RegisterAuthUserWithAnyStatusAnswerAPIRouter(authWithoutStatusV1)
 
        // register api that must be authenticated
-       authV1 := r.Group("/answer/api/v1")
+       authV1 := r.Group(uiConf.APIBaseURL + "/answer/api/v1")
        authV1.Use(authUserMiddleware.MustAuthAndAccountAvailable())
        answerRouter.RegisterAnswerAPIRouter(authV1)
 
-       adminauthV1 := r.Group("/answer/admin/api")
+       adminauthV1 := r.Group(uiConf.APIBaseURL + "/answer/admin/api")
        adminauthV1.Use(authUserMiddleware.AdminAuth())
        answerRouter.RegisterAnswerAdminAPIRouter(adminauthV1)
 
diff --git a/internal/controller/template_controller.go 
b/internal/controller/template_controller.go
index 027926b3..83cd58c3 100644
--- a/internal/controller/template_controller.go
+++ b/internal/controller/template_controller.go
@@ -22,11 +22,6 @@ package controller
 import (
        "encoding/json"
        "fmt"
-       "github.com/apache/answer/internal/base/middleware"
-       "github.com/apache/answer/internal/base/pager"
-       "github.com/apache/answer/internal/service/content"
-       "github.com/apache/answer/internal/service/event_queue"
-       "github.com/apache/answer/plugin"
        "html/template"
        "net/http"
        "net/url"
@@ -34,6 +29,12 @@ import (
        "strings"
        "time"
 
+       "github.com/apache/answer/internal/base/middleware"
+       "github.com/apache/answer/internal/base/pager"
+       "github.com/apache/answer/internal/service/content"
+       "github.com/apache/answer/internal/service/event_queue"
+       "github.com/apache/answer/plugin"
+
        "github.com/apache/answer/internal/base/constant"
        "github.com/apache/answer/internal/base/handler"
        "github.com/apache/answer/internal/base/translator"
diff --git a/internal/install/install_server.go 
b/internal/install/install_server.go
index 856c699c..87517ec0 100644
--- a/internal/install/install_server.go
+++ b/internal/install/install_server.go
@@ -64,12 +64,12 @@ func NewInstallHTTPServer() *gin.Engine {
        installApi.GET(c.UI.BaseURL+"/", 
CheckConfigFileAndRedirectToInstallPage)
        installApi.GET(c.UI.BaseURL+"/install", WebPage)
        installApi.GET(c.UI.BaseURL+"/50x", WebPage)
-       installApi.GET("/installation/language/config", GetLangMapping)
-       installApi.GET("/installation/language/options", LangOptions)
-       installApi.POST("/installation/db/check", CheckDatabase)
-       installApi.POST("/installation/config-file/check", CheckConfigFile)
-       installApi.POST("/installation/init", InitEnvironment)
-       installApi.POST("/installation/base-info", InitBaseInfo)
+       installApi.GET(c.UI.APIBaseURL+"/installation/language/config", 
GetLangMapping)
+       installApi.GET(c.UI.APIBaseURL+"/installation/language/options", 
LangOptions)
+       installApi.POST(c.UI.APIBaseURL+"/installation/db/check", CheckDatabase)
+       installApi.POST(c.UI.APIBaseURL+"/installation/config-file/check", 
CheckConfigFile)
+       installApi.POST(c.UI.APIBaseURL+"/installation/init", InitEnvironment)
+       installApi.POST(c.UI.APIBaseURL+"/installation/base-info", InitBaseInfo)
 
        r.NoRoute(func(ctx *gin.Context) {
                ctx.Redirect(http.StatusFound, "/50x")

Reply via email to