gin icon indicating copy to clipboard operation
gin copied to clipboard

can suport domain router? like github.com/gorilla/mux

Open icetech233 opened this issue 1 year ago • 4 comments

can suport domain router? like github.com/gorilla/mux

Matching Routes Routes can also be restricted to a domain or subdomain. Just define a host pattern to be matched. They can also have variables:

r := mux.NewRouter() // Only matches if domain is "www.example.com". r.Host("www.example.com") // Matches a dynamic subdomain. r.Host("{subdomain:[a-z]+}.example.com") There are several other matchers that can be added. To match path prefixes:

r.PathPrefix("/products/")

icetech233 avatar Aug 22 '24 03:08 icetech233

gorilla/mux

r.Host("{subdomain:[a-z]+}.example.com")

icetech233 avatar Aug 22 '24 03:08 icetech233

r.HandleFunc("/products", ProductsHandler). Host("www.example.com"). Methods("GET"). Schemes("http")

icetech233 avatar Aug 22 '24 03:08 icetech233

package main

import (
	"net/http"

	"github.com/gin-gonic/gin"
)

func main() {
	r := gin.Default()
	api := r.Group("/api")
	api.GET("/users/{id}", func(ctx *gin.Context) {
		ctx.JSON(http.StatusOK, gin.H{
			"message": "hello world",
		})
	})

	if err := r.Run(":8080"); err != nil {
		panic(err)
	}
}

image

Is this what you want?

JimChenWYU avatar Aug 22 '24 04:08 JimChenWYU

package main

import (
	"net/http"

	"github.com/gin-gonic/gin"
)

func main() {
	r := gin.Default()
	api := r.Group("/api")
	api.GET("/users/{id}", func(ctx *gin.Context) {
		ctx.JSON(http.StatusOK, gin.H{
			"message": "hello world",
		})
	})

	if err := r.Run(":8080"); err != nil {
		panic(err)
	}
}

image

Is this what you want?

不是 ,域名 的英文 不认识吗??写了 host domain

icetech233 avatar Aug 22 '24 06:08 icetech233

package main

import (
	"net/http"

	"github.com/gin-gonic/gin"
)

func main() {
	r := gin.Default()
	api := r.Group("/api")
	api.GET("/users/{id}", func(ctx *gin.Context) {
		ctx.JSON(http.StatusOK, gin.H{
			"message": "hello world",
		})
	})

	if err := r.Run(":8080"); err != nil {
		panic(err)
	}
}

image Is this what you want?

不是 ,域名 的英文 不认识吗??写了 host domain

我想我明白你的意思了,你是想实现向nginx那样,可以根据域名匹配接口的功能嘛

ChenPuChu avatar Nov 14 '24 15:11 ChenPuChu

package main

import (
	"net/http"

	"github.com/gin-gonic/gin"
)

func main() {
	r := gin.Default()
	api := r.Group("/api")
	api.GET("/users/{id}", func(ctx *gin.Context) {
		ctx.JSON(http.StatusOK, gin.H{
			"message": "hello world",
		})
	})

	if err := r.Run(":8080"); err != nil {
		panic(err)
	}
}

image Is this what you want?

不是 ,域名 的英文 不认识吗??写了 host domain

我想我明白你的意思了,你是想实现向nginx那样,可以根据域名匹配接口的功能嘛

对的,nginx 就有域名的功能, gorilla/mux 也有

icetech233 avatar Nov 26 '24 03:11 icetech233