Константа http.MethodPut

Константа http.MethodPut представляет собой строковое значение "PUT" и используется для обозначения HTTP-метода PUT в пакете net/http. Данная константа применяется при создании HTTP-запросов, настройке маршрутов и обработке запросов для метода PUT. Использование константы вместо строкового литерала помогает избежать опечаток и упрощает поддержку кода.

Синтаксис

gohttp.MethodPut

Константа не принимает параметров и возвращает строку "PUT".

Пример

Создадим HTTP-запрос с методом PUT с использованием константы http.MethodPut:

gopackage main

import (
  "fmt"
  "net/http"
  "strings"
)

func main() {
  url := "https://api.example.com/resource/1"
  body := strings.NewReader(`{"name": "updated"}`)

  req, err := http.NewRequest(http.MethodPut, url, body)
  if err != nil {
    fmt.Println("Error creating request:", err)
    return
  }

  fmt.Println(req.Method)
  fmt.Println(req.URL.String())
}

Результат выполнения кода:

go"PUT"
"https://api.example.com/resource/1"

В этом примере мы создаем новый HTTP-запрос с методом PUT, используя константу http.MethodPut. Как видно из результата, метод запроса успешно установлен в "PUT".

Пример

Используем константу http.MethodPut для проверки HTTP-метода в обработчике:

gopackage main

import (
  "fmt"
  "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
  if r.Method == http.MethodPut {
    fmt.Fprintf(w, "Request processed with PUT method")
  } else {
    http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
  }
}

func main() {
  http.HandleFunc("/resource", handler)
  fmt.Println("Server started on :8080")
  // http.ListenAndServe(":8080", nil)
}

В этом примере мы создаем обработчик HTTP-запросов, который проверяет, является ли метод запроса PUT. Если да, то возвращается сообщение об успехе. Если метод не PUT, возвращается ошибка "Method not allowed".

Пример

Отправим клиентский запрос с методом PUT с использованием константы:

gopackage main

import (
  "fmt"
  "net/http"
  "strings"
)

func main() {
  url := "https://httpbin.org/put"
  body := strings.NewReader(`{"key": "value"}`)

  req, err := http.NewRequest(http.MethodPut, url, body)
  if err != nil {
    fmt.Println("Error creating request:", err)
    return
  }
  req.Header.Set("Content-Type", "application/json")

  client := &http.Client{}
  resp, err := client.Do(req)
  if err != nil {
    fmt.Println("Error sending request:", err)
    return
  }
  defer resp.Body.Close()

  fmt.Println("Response Status:", resp.Status)
}

Результат выполнения кода (может отличаться в зависимости от сервера):

go"Response Status: 200 OK"

Здесь мы создаем HTTP-клиент, который отправляет PUT-запрос на тестовый сервер. Использование константы http.MethodPut гарантирует правильное указание метода запроса.

Смотрите также

  • константу http.MethodGet,
    которая представляет метод GET
  • константу http.MethodPost,
    которая представляет метод POST
  • константу http.MethodDelete,
    которая представляет метод DELETE
  • константу http.MethodPatch,
    которая представляет метод PATCH