【发布时间】:2019-05-20 20:32:08
【问题描述】:
我正在使用 Golang 创建 RESTful API,并将删除路由器按索引放在 getOne 路由器之后,而删除路由器从未被触发?我不知道为什么?当我反转它们时,它起作用了! 有人能知道原因吗??
这是用于使用 Golang 构建 Restful API。
无效:
myRouter.HandleFunc("/article", createNewArticle).Methods("POST")
myRouter.HandleFunc("/article/{id}", getOneArticle)
myRouter.HandleFunc("/article/{id}", deleteArticle).Methods("DELETE")
有效!
myRouter.HandleFunc("/article", createNewArticle).Methods("POST")
myRouter.HandleFunc("/article/{id}", deleteArticle).Methods("DELETE")
myRouter.HandleFunc("/article/{id}", getOneArticle)
当我使用 postman 和 DELETE 方法测试 api 时,它总是触发 getOneArticle 并以删除项目响应,但实际上并没有在数据库中删除!
【问题讨论】:
-
想想这是如何执行的......
DELETE /article/{id}匹配myRouter.HandleFunc("/article/{id}", getOneArticle)所以程序不会继续下一条路线 -
但是我把DELETE放在什么前面,下面的getOneArticle还是可以的,
-
所以DELETE请求匹配GET操作???