みなさん、こんにちは、私はセットアップに路線を持つ複数のサブドメインを必要とするプロジェクトに取り組んでいますジンルータとgolangで動的なサブドメインを処理するための最良の方法は何
。 2つのサブドメインを持つコードを試しましたが、私の場合は100のサブドメインになります。私はこのために次のコードを試しました:
package main
import (
"github.com/gin-gonic/gin"
"net/http"
"strings"
)
type Subdomains map[string]http.Handler
func (subdomains Subdomains) ServeHTTP(w http.ResponseWriter, r *http.Request) {
domainParts := strings.Split(r.Host, ".")
if mux := subdomains[domainParts[0]]; mux != nil {
mux.ServeHTTP(w, r)
} else {
http.Error(w, "Not found", 404)
}
}
func main() {
r := gin.Default()
r2 := gin.Default()
hs := make(Subdomains)
hs["admin"] = r
hs["analytics"] = r2
r.GET("/ping", adminHandlerOne)
r2.GET("/ping", adminHandlerOne)
http.ListenAndServe(":9090", hs)
}
func adminHandlerOne(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
}
しかし、これは良くないと思います。誰かがこれを行う適切な方法を知っていますか?
コードをテストしましたか? –
@YandryPozoこんにちは、私のコードは私のためにうまく動作します。あなたはURLでテストすることができます。 http://admin.localhost:9090/ping、http://analytics.localhost:9090/ping。 – Swati