Разработчик зарегистрировал обработчик на /tasks/ и внутри него для неизвестного метода вызвал http.Error(w, "method not allowed", 405). В чём проблема с точки зрения контракта API?
/tasks/
http.Error(w, "method not allowed", 405)
ServeMux перехватит ответ и заменит тело на пустое, поэтому клиент не получит сообщение об ошибке
Статус 405 недопустим внутри обработчика — его может выставлять только ServeMux через method-qualified паттерн
http.Error выставляет Content-Type: text/plain, а контракт требует application/json и объект с полем error
http.Error
Content-Type: text/plain
application/json
error
Код 405 не является корректным HTTP-статусом для обработчиков, зарегистрированных через HandleFunc
HandleFunc
http.Error вызывает WriteHeader до установки заголовков, поэтому Content-Type будет потерян и клиент получит пустой ответ
WriteHeader
Content-Type