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")