Как обернуть http.Handler в метод - PullRequest
0 голосов
/ 30 мая 2020

Самый простой способ получить файловую систему в go - это приведенный ниже код.

http.Handle("/files", http.StripPrefix(pathPrefix, http.FileServer(root)))

Но в целях объективного дизайна я предпочитаю обернуть тело функции в метод, подобный этому.

f := file{}
http.Handle("/download", f.download)
http.Handle("/upload", f.upload)

Как мне обернуть содержимое кода в метод структуры файла?

1 Ответ

1 голос
/ 30 мая 2020

Вы можете сделать это, используя http.HandleFunc вместо http.Handle:

f := file{}
http.HandleFunc("/download", f.download)
http.HandleFunc("/upload", f.upload)

Предполагая, что у него правильная подпись (ie, при условии, что f.download определяется как что-то вроде func (f file) download(w http.ResponseWriter, r *http.Request)), тогда он должен делать то, что вы хотите.

...