This commit is contained in:
vipg
2026-02-09 17:04:20 +08:00
parent ec07824a4d
commit e9457b8a24
3 changed files with 34 additions and 1 deletions

View File

@@ -0,0 +1,19 @@
package httpx
import "net/http"
func CORS() func(http.Handler) http.Handler {
return func(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Access-Control-Allow-Methods", "POST, OPTIONS")
w.Header().Set("Access-Control-Allow-Headers", "Content-Type, Authorization, X-Requested-With")
w.Header().Set("Access-Control-Max-Age", "86400")
if r.Method == http.MethodOptions {
w.WriteHeader(http.StatusNoContent)
return
}
next.ServeHTTP(w, r)
})
}
}

View File

@@ -69,13 +69,25 @@ func (h *Handler) Login(w http.ResponseWriter, r *http.Request) {
} }
func (h *Handler) Healthz(w http.ResponseWriter, r *http.Request) { func (h *Handler) Healthz(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodPost {
httpx.MethodNotAllowed(w, string(codes.MethodNotAllowed))
return
}
httpx.OK(w, nil) httpx.OK(w, nil)
} }
func (h *Handler) Version(w http.ResponseWriter, r *http.Request) { func (h *Handler) Version(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodPost {
httpx.MethodNotAllowed(w, string(codes.MethodNotAllowed))
return
}
httpx.OK(w, map[string]string{"version": "user-service v0.1.0"}) httpx.OK(w, map[string]string{"version": "user-service v0.1.0"})
} }
func (h *Handler) Root(w http.ResponseWriter, r *http.Request) { func (h *Handler) Root(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodPost {
httpx.MethodNotAllowed(w, string(codes.MethodNotAllowed))
return
}
httpx.OK(w, map[string]string{"service": "user"}) httpx.OK(w, map[string]string{"service": "user"})
} }

View File

@@ -12,6 +12,7 @@ import (
"common/db" "common/db"
"common/logger" "common/logger"
"common/utils" "common/utils"
"common/httpx"
"user/internal/handler" "user/internal/handler"
"user/internal/repository" "user/internal/repository"
"user/internal/router" "user/internal/router"
@@ -64,7 +65,8 @@ func routes() http.Handler {
repo := repository.New(pg) repo := repository.New(pg)
svc := service.New(repo) svc := service.New(repo)
h := handler.New(svc) h := handler.New(svc)
return router.New(h) cors := httpx.CORS()
return cors(router.New(h))
} }
func applySchema(path string) error { func applySchema(path string) error {