我目前正在使用 Go 開(kāi)發(fā)一個(gè)圖像處理程序,它旨在拒絕上傳不受支持的文件。我的意圖是讓 Go 程序通過(guò)服務(wù)器 http.ResponceWritter 返回錯(cuò)誤,詳細(xì)說(shuō)明拒絕的情況,作為 json,供上傳服務(wù)使用。如何在服務(wù)器代碼中設(shè)置錯(cuò)誤:type Error struct { ImgHandlerError `json:"error"`}type ImgHandlerError struct { Message string `json:"message"` Code string `json:"code"`}func MakeError(message, code string) *Error { errorMessage := &Error{ ImgHandlerError: ImgHandlerError{ Message: message, Code: code, }, } return errorMessage}func ThrowErr(errorMessage Error, writer http.ResponseWriter) { jData, err := json.Marshal(errorMessage) if err != nil { } writer.Header().Set("Content-Type", "application/json") writer.WriteHeader(http.StatusForbidden) writer.Write(jData) return}如何生成錯(cuò)誤并將其寫(xiě)入 HTTP 響應(yīng):errorMes := *MakeError("PSD files are not supported", "DEF-IMG-0006")ThrowErr(errorMes, res)目前這按預(yù)期工作,例如,當(dāng)上傳 .psd 時(shí),當(dāng)前 HTTP 響應(yīng)返回為 JSON。{"error":{"message":"PSD files are not supported","code":"DEF-IMG-0006"}}我現(xiàn)在的問(wèn)題是測(cè)試這個(gè),因?yàn)槲伊Σ粡男?,因?yàn)檫@是我的第一個(gè) Go 程序。我正在使用 Ginko 測(cè)試套件。我已經(jīng)嘗試在測(cè)試套件中設(shè)置http.ResponseRecorder(因?yàn)槲艺J(rèn)為這就是解決方案所在)但我沒(méi)有運(yùn)氣。此外,我當(dāng)前在測(cè)試套件中的測(cè)試僅測(cè)試不需要作為writer http.ResponseWriter參數(shù)的功能,因此我不確定是否需要在測(cè)試套件中啟動(dòng)服務(wù)器才能讀取響應(yīng)編寫(xiě)器。任何幫助是極大的贊賞
- 0 回答
- 0 關(guān)注
- 153 瀏覽
添加回答
舉報(bào)
0/150
提交
取消