Skip to content

Commit e470b63

Browse files
committed
feat(server): add API base URL configuration and update routes
1 parent b2eb768 commit e470b63

File tree

4 files changed

+20
-18
lines changed

4 files changed

+20
-18
lines changed

internal/base/server/config.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,6 @@ type HTTP struct {
2626

2727
// UI ui config
2828
type UI struct {
29-
BaseURL string `json:"base_url" mapstructure:"base_url" yaml:"base_url"`
29+
BaseURL string `json:"base_url" mapstructure:"base_url" yaml:"base_url"`
30+
APIBaseURL string `json:"api_base_url" mapstructure:"api_base_url" yaml:"api_base_url"`
3031
}

internal/base/server/http.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -62,30 +62,30 @@ func NewHTTPServer(debug bool,
6262

6363
rootGroup := r.Group("")
6464
swaggerRouter.Register(rootGroup)
65-
static := r.Group("")
65+
static := r.Group(uiConf.APIBaseURL)
6666
static.Use(avatarMiddleware.AvatarThumb(), authUserMiddleware.VisitAuth())
6767
staticRouter.RegisterStaticRouter(static)
6868

6969
// The route must be available without logging in
70-
mustUnAuthV1 := r.Group("/answer/api/v1")
70+
mustUnAuthV1 := r.Group(uiConf.APIBaseURL + "/answer/api/v1")
7171
answerRouter.RegisterMustUnAuthAnswerAPIRouter(authUserMiddleware, mustUnAuthV1)
7272

7373
// register api that no need to login
74-
unAuthV1 := r.Group("/answer/api/v1")
74+
unAuthV1 := r.Group(uiConf.APIBaseURL + "/answer/api/v1")
7575
unAuthV1.Use(authUserMiddleware.Auth(), authUserMiddleware.EjectUserBySiteInfo())
7676
answerRouter.RegisterUnAuthAnswerAPIRouter(unAuthV1)
7777

7878
// register api that must be authenticated but no need to check account status
79-
authWithoutStatusV1 := r.Group("/answer/api/v1")
79+
authWithoutStatusV1 := r.Group(uiConf.APIBaseURL + "/answer/api/v1")
8080
authWithoutStatusV1.Use(authUserMiddleware.MustAuthWithoutAccountAvailable())
8181
answerRouter.RegisterAuthUserWithAnyStatusAnswerAPIRouter(authWithoutStatusV1)
8282

8383
// register api that must be authenticated
84-
authV1 := r.Group("/answer/api/v1")
84+
authV1 := r.Group(uiConf.APIBaseURL + "/answer/api/v1")
8585
authV1.Use(authUserMiddleware.MustAuthAndAccountAvailable())
8686
answerRouter.RegisterAnswerAPIRouter(authV1)
8787

88-
adminauthV1 := r.Group("/answer/admin/api")
88+
adminauthV1 := r.Group(uiConf.APIBaseURL + "/answer/admin/api")
8989
adminauthV1.Use(authUserMiddleware.AdminAuth())
9090
answerRouter.RegisterAnswerAdminAPIRouter(adminauthV1)
9191

internal/controller/template_controller.go

+6-5
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,19 @@ package controller
2222
import (
2323
"encoding/json"
2424
"fmt"
25-
"github.com/apache/answer/internal/base/middleware"
26-
"github.com/apache/answer/internal/base/pager"
27-
"github.com/apache/answer/internal/service/content"
28-
"github.com/apache/answer/internal/service/event_queue"
29-
"github.com/apache/answer/plugin"
3025
"html/template"
3126
"net/http"
3227
"net/url"
3328
"regexp"
3429
"strings"
3530
"time"
3631

32+
"github.com/apache/answer/internal/base/middleware"
33+
"github.com/apache/answer/internal/base/pager"
34+
"github.com/apache/answer/internal/service/content"
35+
"github.com/apache/answer/internal/service/event_queue"
36+
"github.com/apache/answer/plugin"
37+
3738
"github.com/apache/answer/internal/base/constant"
3839
"github.com/apache/answer/internal/base/handler"
3940
"github.com/apache/answer/internal/base/translator"

internal/install/install_server.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,12 @@ func NewInstallHTTPServer() *gin.Engine {
6464
installApi.GET(c.UI.BaseURL+"/", CheckConfigFileAndRedirectToInstallPage)
6565
installApi.GET(c.UI.BaseURL+"/install", WebPage)
6666
installApi.GET(c.UI.BaseURL+"/50x", WebPage)
67-
installApi.GET("/installation/language/config", GetLangMapping)
68-
installApi.GET("/installation/language/options", LangOptions)
69-
installApi.POST("/installation/db/check", CheckDatabase)
70-
installApi.POST("/installation/config-file/check", CheckConfigFile)
71-
installApi.POST("/installation/init", InitEnvironment)
72-
installApi.POST("/installation/base-info", InitBaseInfo)
67+
installApi.GET(c.UI.APIBaseURL+"/installation/language/config", GetLangMapping)
68+
installApi.GET(c.UI.APIBaseURL+"/installation/language/options", LangOptions)
69+
installApi.POST(c.UI.APIBaseURL+"/installation/db/check", CheckDatabase)
70+
installApi.POST(c.UI.APIBaseURL+"/installation/config-file/check", CheckConfigFile)
71+
installApi.POST(c.UI.APIBaseURL+"/installation/init", InitEnvironment)
72+
installApi.POST(c.UI.APIBaseURL+"/installation/base-info", InitBaseInfo)
7373

7474
r.NoRoute(func(ctx *gin.Context) {
7575
ctx.Redirect(http.StatusFound, "/50x")

0 commit comments

Comments
 (0)