rest - golang gorilla/mux 和 rest GET 问题
问题描述
我的删除处理程序:(我正在使用“github.com/gorilla/mux”)
func DeletePerson(w http.ResponseWriter, r *http.Request) {
params := mux.Vars(r)
item := params["id"]
fmt.Println("Item = ", item)
...
由以下 curl 命令调用时返回 Item = "2":
curl -X DELETE http://localhost:8000/address/2
但是,我的测试代码:
func TestDeletePerson(t *testing.T) {
person := &Person{
UniqID: "2",
FirstName: "",
LastName: "",
EmailAddr: "",
PhoneNumb: "",
}
jsonPerson, _ := json.Marshal(person)
request, _ := http.NewRequest("DELETE", "/address/2", bytes.NewBuffer(jsonPerson))
response := httptest.NewRecorder()
DeletePerson(response, request)
结果 DeletePerson 返回“”并直接打印“params”返回
map[]
大问题 - 我到底想念什么???
我设置了另一个标题参数吗?
解决方案
因为你没有初始化路由器。尝试这个
func TestDeletePerson(t *testing.T) {
r := mux.NewRouter()
r.HandleFunc("/adress/{id}", DeletePerson).Methods("DELETE")
request, _ := http.NewRequest("DELETE", "/adress/2", nil)
response := httptest.NewRecorder()
r.ServeHTTP(response, request)
}
另外我认为您不需要发送 Person 对象进行删除
推荐阅读
- regex - Perl:试图查看第 X 行的第 N 列是否与第 X-1 行的第 N 列匹配
- c# - 修改 languageDefinitions.config 文件
- mysql - JOIN 没有外键的读取性能与使用外键连接
- c - GTK3 调整大小尝试以指数方式增长窗口
- r - 计算只有时间到事件数据的 Cox PH 模型
- javascript - 读取 txt 文件的行并组织在 JSON 文件中
- c# - 即使调用应用程序回滚,SQL Server SP 也已提交事务
- jpanel - 试图将面板投射到 JOptionPane
- delphi - 启动(调试)32 位应用程序时,Delphi 10.2.3 挂起
- node.js - KeyCloak 和 passportjs-saml - 无法完成 SAML 流程