Golang Gorilla / Mux и отдых GET Проблемы - PullRequest
0 голосов
/ 04 октября 2018

Мой обработчик удаления: (я использую "github.com/gorilla/mux")

func DeletePerson(w http.ResponseWriter, r *http.Request) {
params := mux.Vars(r)
item := params["id"]
fmt.Println("Item = ", item)
...

возвращает Item =" 2 "при вызове следующей командой curl:

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[]

Большой вопрос - ЧТО В АД Я ПРОПУСТУЮ???

Есть другой параметр заголовка, который я установил?

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Проблема в том, что ваше решение не проверяет мой обработчик удаления "DeletePerson".Curl вызывает «DeletePerson» со строкой «curl -X DELETE localhost: 8000 / address / 2»;и это каким-то образом позволяет mux.Vars явно находить карту ["id": "2 '"], где "2" - это идентификатор записи для удаления.То, что я не могу сделать, это вызвать «DeletePerson:» таким образом, что он производит желаемый параметр карты!Что такое горилла мукс. Варианты чтения, какой-то внутренний заголовок ??- Крестный отец 3 часа назад

0 голосов
/ 04 октября 2018

Потому что вы не инициализировали роутер.Попробуйте это

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 для удаления

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...