Golang中Chi路由器的URL格式问题 - render.JSON参数过多
Golang中Chi路由器的URL格式问题 - render.JSON参数过多 大家好,
我是一名Python开发者,正在尝试学习Go语言。我尝试编写一个简单的REST服务器,但在编译时遇到了一些问题,我不太明白原因。代码片段如下所示。
据我所知,我遵循了 https://github.com/go-chi/chi/blob/master/middleware/url_format.go 上发布的说明。
render.JSON 的函数签名是 JSON(w http.ResponseWriter, r *http.Request, v interface{})。
这肯定是一个很明显的错误,但我对Go语言还很陌生。有人能指出并解释错误在哪里吗?
感谢您的时间!
package main
import (
"net/http"
"github.com/gin-gonic/gin/render"
"github.com/go-chi/chi"
"github.com/go-chi/chi/middleware"
)
type articles struct {
Name string `json:"name" xml:"name"`
}
func routes() http.Handler {
r := chi.NewRouter()
r.Use(middleware.URLFormat)
r.Get("/articles/{id}", listArticles)
return r
}
func listArticles(w http.ResponseWriter, r *http.Request) {
urlFormat, _ := r.Context().Value(middleware.URLFormatCtxKey).(string)
switch urlFormat {
case "json":
render.JSON(w, r, articles{"json"})
case "xml":
render.XML(w, r, articles{"xml"})
default:
render.JSON(w, r, articles{"default"})
}
}
func main() {
r := chi.NewRouter()
r.Use(middleware.Logger)
r.Mount("/", routes())
http.ListenAndServe(":3333", r)
}
更多关于Golang中Chi路由器的URL格式问题 - render.JSON参数过多的实战教程也可以访问 https://www.itying.com/category-94-b0.html
3 回复
Xavier_Pegenaute:
我在编译时遇到了一些问题,
具体是什么问题?请展示给我们看。
更多关于Golang中Chi路由器的URL格式问题 - render.JSON参数过多的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
好的,错误是由于混淆了 Gin 框架和 Chi 框架导致的。现在已经解决了。
非常感谢!


