草庐IT

前端路由

全部标签

go - 如何将中间件添加到 Go 中的子路由器?

我有以下代码:apiRouter:=mux.NewRoute().PathPrefix("/").Subrouter()//Bucketrouterbucket:=apiRouter.PathPrefix("/{bucket}").Subrouter()bucket.Methods("HEAD").Path("/{object:.+}").HandlerFunc(api.HeadObjectHandler)//Similarlyhandlemanymoremethods我正在尝试在“桶”子路由器处理的所有操作之上添加统计信息收集。此统计信息收集框架将需要传递给存储桶使用的所有处理程序的

go - 使用 GO 和 gorilla mux 的动态路由查询

我正在使用gorillamux设置动态路由,这是routes.go代码typeRoutestruct{NamestringMethodstringPatternstringQueries[]stringHandlerFunchttp.HandlerFunc}typeRoutes[]Routevarvers=os.Getenv("API_VERSION")varbaseURL="/api/"+vers+"/"varauthRoutes=Routes{Route{"GetAllUsers","GET",baseURL+"users",[]string{"maxperpage","{maxp

Angular 8 前端不将捕获的数据/字段发送到后端

我目前正在重写一个应用程序,该应用程序将具有Angular8前端(在我编写代码时学习),该前端将与连接到MSSQL数据库的Go后端进行交互。我可以成功显示来自数据库的数据。但是,当尝试更新收到的数据时,字段/数据似乎没有发送到Go后端。我已经使用Postman测试了Go后端API并且工作正常。关于下面的代码可能有什么问题或者我可以做些什么来调试它有什么建议吗?rest-api.service.tshttpOptions={headers:newHttpHeaders({'Content-Type':'application/json'//'Content-Type':'Applicat

string - 如何将通配符 * 集成到数学验证路由中

我正在构建一个身份验证系统,到目前为止我对它的工作非常满意。但现在我想像下面这样集成一个通配符运算符:如果uri是/user/list并且在允许的映射中有/user/*它必须通过。Allowed{"*":{"administrator","regional"},//logicworks"/user/*":{"administrator"},//howtoimplement"/login":{"administrator","regional"},//logicworks}func(a*Authentication)IsAllowed(req*http.Request,rolestrin

go - negroni/gorilla mux 的子路由器问题

所以我正在尝试设置我的路由器以响应/users和/users/{userId}所以我尝试了这段代码:usersRouter:=router.PathPrefix("/users").Subrouter()usersRouter.HandleFunc("",users.GetUsersRoute).Methods("GET")usersRouter.HandleFunc("/{userId:[0-9]*}",users.GetUserRoute).Methods("GET")问题是当我转到/users时出现404错误(但确实响应/users/)如果我这样做:router.HandleFu

go - 在 Goji 中映射所有路由及其 http 方法

我想映射每个路由及其请求类型(GET、POST、PUT等),以便为我的restfulAPI生成类似于JSON格式的sitemap.xml。Goji使用函数创建新路线。我可以将路径和处理程序存储在map中。我的方法是这样的,除了编译器给出以下初始化循环错误,因为sitemap和routes相互引用(routemap包含处理程序站点地图应该marhsall本身)。main.go:18:initializationloop:main.go:18routesreferstomain.go:41sitemapreferstomain.go:18routes这可以用更惯用的方式实现吗?packag

google-app-engine - 定义了一个带有绑定(bind)参数但得到 404 的 Goji 路由

我有一个使用Goji的GoogleAppEngine应用程序并定义了以下路由:funcinit(){mux:=web.New()http.Handle("/api/list",mux)mux.Use(middleware.EnvInit)mux.Use(middleware.Logger)mux.Get("/api/list",list.HandleListGetAll)mux.Post("/api/list",list.HandleListNewList)mux.Get("/api/list/:id",list.HandleListGetSingle)}我可以GET和POST到/ap

rest - 如何在现实世界的 Go 项目中分离路由、处理程序、第 3 方接口(interface)和业务逻辑

看完officialguide关于如何构建项目和经历各种(1、2、3仅举几例)示例和项目我不禁想知道我构建REST-API服务器应用程序的方法是否结构化正确地。API的用途是什么?POST/auth/sign-in接受用户名和密码并发出JWT(JSON网络token)。GET/auth/sign-out将JWT添加到黑名单以使身份验证session无效。获取/资源检索所有资源的列表。POST/resources(需要有效的JWT身份验证)接受JSON正文,创建新资源并向所有人发送有关新资源的电子邮件和通知。我的项目是什么样的目前我没有创建任何库。一切都在主包中,带有路由的总体服务器设置

go - 在 `golang` float64 乘法上进行高精度错误路由的正确方法是什么

当将golangfloat64值与整数相乘时,由于float的存储方式,结果包含高精度错误值。这是一个代码片段,显示了我所指的问题packagemainimport("fmt")funcmain(){varlfloat64=0.2fmt.Println("Hello,playground",l*6)}结果是Hello,playground1.2000000000000002这是同一个playground的播放链接是否有舍入错误的标准/最佳实践? 最佳答案 这取决于用例是什么以及您要显示多少位数字。你可以这样做:funcmain(){

不同 Controller 中的 Golang 路由

我是Golang的新手,我正在尝试学习如何进行高效的路由。例如,我有一个Controller文件夹/目录,在该Controller内,我想使用不同的Func/方法和它们自己独特的路由,但我不知道该怎么做。我已经下载了github.com/gorilla/mux包,我的应用程序如下所示我的应用程序的主要部分如下所示,并且运行良好:tim.gopackagemainimport("net/http""fmt""github.com/gorilla/mux")funcHomeHandler(writerhttp.ResponseWriter,req*http.Request){writer.