diff --git a/examples/go.mod b/examples/go.mod index 85d7a78..759862f 100644 --- a/examples/go.mod +++ b/examples/go.mod @@ -3,7 +3,7 @@ module github.com/alimy/mir-example/v4 go 1.19 require ( - github.com/alimy/mir/v4 v4.0.0 + github.com/alimy/mir/v4 v4.1.0-beta.1 github.com/gin-gonic/gin v1.9.1 ) diff --git a/examples/go.sum b/examples/go.sum index 4de4875..166f0d1 100644 --- a/examples/go.sum +++ b/examples/go.sum @@ -1,5 +1,5 @@ -github.com/alimy/mir/v4 v4.0.0 h1:MzGfmoLjjvR69jbZEmpKJO3tUuqB0RGRv1UWPbtukBg= -github.com/alimy/mir/v4 v4.0.0/go.mod h1:d58dBvw2KImcVbAUANrciEV/of0arMNsI9c/5UNCMMc= +github.com/alimy/mir/v4 v4.1.0-beta.1 h1:TdXNCmCSqjX8jj4KW4tTCMV2Ij1PpMoguJw5pinw/zk= +github.com/alimy/mir/v4 v4.1.0-beta.1/go.mod h1:d58dBvw2KImcVbAUANrciEV/of0arMNsI9c/5UNCMMc= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s= github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= diff --git a/examples/mirc/auto/api/site.go b/examples/mirc/auto/api/site.go index a1455b7..57b0a29 100644 --- a/examples/mirc/auto/api/site.go +++ b/examples/mirc/auto/api/site.go @@ -119,14 +119,14 @@ func RegisterSiteServant(e *gin.Engine, s Site, m ...SiteChain) { { h := append(cc.ChainMultiAttachments(), s.MultiAttachments) router.Handle("GET", "/attachments/:name/", h...) - router.Handle("OPTIONS", "/attachments/:name/", h...) router.Handle("HEAD", "/attachments/:name/", h...) + router.Handle("OPTIONS", "/attachments/:name/", h...) } { h := s.ManyResources - router.Handle("OPTIONS", "/resources/:name/", h) - router.Handle("HEAD", "/resources/:name/", h) router.Handle("GET", "/resources/:name/", h) + router.Handle("HEAD", "/resources/:name/", h) + router.Handle("OPTIONS", "/resources/:name/", h) } router.Any("/anystaticks/:name/", s.AnyStaticks) router.Handle("GET", "/statics/:name/", s.Statics) @@ -201,8 +201,8 @@ func RegisterSiteServant(e *gin.Engine, s Site, m ...SiteChain) { resp, err := s.PrevTweets(req) s.Render(c, resp, err) } - router.Handle("HEAD", "/tweets/prev/", h) router.Handle("GET", "/tweets/prev/", h) + router.Handle("HEAD", "/tweets/prev/", h) router.Handle("POST", "/tweets/prev/", h) } router.Any("/tweets/next/", func(c *gin.Context) { diff --git a/examples/mirc/auto/api/v1/admin.go b/examples/mirc/auto/api/v1/admin.go index f459669..732cc71 100644 --- a/examples/mirc/auto/api/v1/admin.go +++ b/examples/mirc/auto/api/v1/admin.go @@ -79,9 +79,9 @@ func RegisterAdminServant(e *gin.Engine, s Admin, m ...AdminChain) { s.Render(c, nil, s.Teams()) }) - router.Handle("POST", "/teams/:category/", h...) router.Handle("GET", "/teams/:category/", h...) router.Handle("HEAD", "/teams/:category/", h...) + router.Handle("POST", "/teams/:category/", h...) } router.Handle("DELETE", "/user/", append(cc.ChainDelUser(), func(c *gin.Context) { select { diff --git a/examples/mirc/auto/api/v1/site.go b/examples/mirc/auto/api/v1/site.go index ac33e4d..e124812 100644 --- a/examples/mirc/auto/api/v1/site.go +++ b/examples/mirc/auto/api/v1/site.go @@ -54,15 +54,15 @@ func RegisterSiteServant(e *gin.Engine, s Site, m ...SiteChain) { // register routes info to router { h := append(cc.ChainMultiAttachments(), s.MultiAttachments) - router.Handle("OPTIONS", "/attachments/:name/", h...) - router.Handle("HEAD", "/attachments/:name/", h...) router.Handle("GET", "/attachments/:name/", h...) + router.Handle("HEAD", "/attachments/:name/", h...) + router.Handle("OPTIONS", "/attachments/:name/", h...) } { h := s.ManyResources router.Handle("GET", "/resources/:name/", h) - router.Handle("OPTIONS", "/resources/:name/", h) router.Handle("HEAD", "/resources/:name/", h) + router.Handle("OPTIONS", "/resources/:name/", h) } router.Any("/anystaticks/:name/", s.AnyStaticks) router.Handle("GET", "/assets/:name/", s.Assets) @@ -85,9 +85,9 @@ func RegisterSiteServant(e *gin.Engine, s Site, m ...SiteChain) { s.Render(c, nil, s.Articles()) }) - router.Handle("POST", "/articles/:category/", h...) router.Handle("GET", "/articles/:category/", h...) router.Handle("HEAD", "/articles/:category/", h...) + router.Handle("POST", "/articles/:category/", h...) } router.Any("/topics/", append(cc.ChainAnyTopics(), func(c *gin.Context) { select { diff --git a/examples/mirc/auto/api/v2/site.go b/examples/mirc/auto/api/v2/site.go index 3e01412..5c06307 100644 --- a/examples/mirc/auto/api/v2/site.go +++ b/examples/mirc/auto/api/v2/site.go @@ -105,15 +105,15 @@ func RegisterSiteServant(e *gin.Engine, s Site, m ...SiteChain) { // register routes info to router { h := append(cc.ChainMultiAttachments(), s.MultiAttachments) - router.Handle("HEAD", "/attachments/:name/", h...) router.Handle("GET", "/attachments/:name/", h...) + router.Handle("HEAD", "/attachments/:name/", h...) router.Handle("OPTIONS", "/attachments/:name/", h...) } { h := s.ManyResources - router.Handle("OPTIONS", "/resources/:name/", h) - router.Handle("HEAD", "/resources/:name/", h) router.Handle("GET", "/resources/:name/", h) + router.Handle("HEAD", "/resources/:name/", h) + router.Handle("OPTIONS", "/resources/:name/", h) } router.Any("/anystaticks/:name/", s.AnyStaticks) router.Handle("GET", "/assets/:name/", func(c *gin.Context) { @@ -184,8 +184,8 @@ func RegisterSiteServant(e *gin.Engine, s Site, m ...SiteChain) { s.Render(c, resp, err) } router.Handle("GET", "/tweets/prev/", h) - router.Handle("POST", "/tweets/prev/", h) router.Handle("HEAD", "/tweets/prev/", h) + router.Handle("POST", "/tweets/prev/", h) } router.Any("/tweets/next/", func(c *gin.Context) { select { diff --git a/examples/mirc/auto/api/v3/site.go b/examples/mirc/auto/api/v3/site.go index 5da8f7f..39eed9c 100644 --- a/examples/mirc/auto/api/v3/site.go +++ b/examples/mirc/auto/api/v3/site.go @@ -62,15 +62,15 @@ func RegisterSiteServant(e *gin.Engine, s Site, m ...SiteChain) { // register routes info to router { h := append(cc.ChainMultiAttachments(), s.MultiAttachments) - router.Handle("OPTIONS", "/attachments/:name/", h...) - router.Handle("HEAD", "/attachments/:name/", h...) router.Handle("GET", "/attachments/:name/", h...) + router.Handle("HEAD", "/attachments/:name/", h...) + router.Handle("OPTIONS", "/attachments/:name/", h...) } { h := s.ManyResources - router.Handle("OPTIONS", "/resources/:name/", h) - router.Handle("HEAD", "/resources/:name/", h) router.Handle("GET", "/resources/:name/", h) + router.Handle("HEAD", "/resources/:name/", h) + router.Handle("OPTIONS", "/resources/:name/", h) } router.Any("/anystaticks/:name/", s.AnyStaticks) router.Handle("GET", "/statics/:name/", func(c *gin.Context) { @@ -132,8 +132,8 @@ func RegisterSiteServant(e *gin.Engine, s Site, m ...SiteChain) { resp, err := s.PrevTweets(req) s.Render(c, resp, err) } - router.Handle("HEAD", "/tweets/prev/", h) router.Handle("GET", "/tweets/prev/", h) + router.Handle("HEAD", "/tweets/prev/", h) router.Handle("POST", "/tweets/prev/", h) } router.Any("/tweets/next/", func(c *gin.Context) { diff --git a/internal/utils/set_method.go b/internal/utils/set_method.go index 1e009b2..baba21f 100644 --- a/internal/utils/set_method.go +++ b/internal/utils/set_method.go @@ -4,7 +4,10 @@ package utils -import "net/http" +import ( + "net/http" + "sort" +) // HttpMethodSet http method set struct type HttpMethodSet map[string]struct{} @@ -31,5 +34,6 @@ func (s HttpMethodSet) List() []string { for m := range s { methods = append(methods, m) } + sort.Strings(methods) return methods }