Вопрос пользователя:
Ответ нейросети:
package main
import ( "fmt" "net/http" )
func helloHandler(w http.ResponseWriter, r *http.Request) { name := r.Context().Value("name").(string) fmt.Fprintf(w, "Hello, %s!", name) }
func Sanitize(next http.HandlerFunc) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { name := r.URL.Query().Get("name") if name == "" { http.Error(w, "Name is required", http.StatusBadRequest) return } next.ServeHTTP(w, r.WithContext(context.WithValue(r.Context(), "name", name))) } }
func SetDefaultName(next http.HandlerFunc) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { name := r.URL.Query().Get("name") if name == "" { name = "stranger" } next.ServeHTTP(w, r.WithContext(context.WithValue(r.Context(), "name", name))) } }
func main() { http.HandleFunc("/hello", Sanitize(SetDefaultName(helloHandler))) http.ListenAndServe(":8080", nil) }
Напишите нам, если в вопросе есть ваши персональные данные ([email protected])
Обратите внимание: ответы, предоставляемые искусственным интеллектом, могут не всегда быть точными. Не рассчитывайте на них в критически важных областях, таких как медицина, юриспруденция, финансы или в вопросах, связанных с безопасностью. Для важных решений всегда обращайтесь к квалифицированным специалистам. Администрация сайта не несет ответственности за контент, сгенерированный автоматически.