Константа http.MethodPatch
Константа http.MethodPatch представляет метод HTTP PATCH.
Она содержит строковое значение "PATCH" и используется для
частичного обновления ресурса на сервере. В отличие от PUT,
который заменяет весь ресурс, PATCH применяется только к
указанным полям.
Константа определена в пакете net/http и имеет тип
string. Ее можно использовать при создании запросов
через http.NewRequest или при настройке сервера для
обработки PATCH-запросов.
Синтаксис
http.MethodPatch
Константа возвращает строку "PATCH", которую можно
передавать в функции, ожидающие метод HTTP.
Пример отправки PATCH-запроса
Создадим PATCH-запрос с использованием константы:
package main
import (
"bytes"
"fmt"
"net/http"
)
func main() {
url := "https://api.example.com/users/1"
jsonData := []byte(`{"name":"John"}`)
req, err := http.NewRequest(http.MethodPatch, url, bytes.NewBuffer(jsonData))
if err != nil {
fmt.Println("Error:", err)
return
}
req.Header.Set("Content-Type", "application/json")
fmt.Println("Method:", req.Method)
fmt.Println("URL:", req.URL)
fmt.Println("Headers:", req.Header)
}
Результат выполнения кода:
"Method: PATCH"
"URL: https://api.example.com/users/1"
"Headers: map[Content-Type:[application/json]]"
Пример обработки PATCH-запроса на сервере
Настроим обработчик для PATCH-запросов:
package main
import (
"fmt"
"net/http"
)
func patchHandler(w http.ResponseWriter, r *http.Request) {
if r.Method == http.MethodPatch {
fmt.Fprintln(w, "PATCH request received")
return
}
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
}
func main() {
http.HandleFunc("/resource", patchHandler)
fmt.Println("Server started at :8080")
// Запуск сервера (закомментирован для примера)
// http.ListenAndServe(":8080", nil)
}
Результат выполнения кода:
"Server started at :8080"
Пример сравнения с другими методами
Используем константу для проверки метода запроса:
package main
import (
"fmt"
"net/http"
)
func main() {
methods := []string{
http.MethodGet,
http.MethodPost,
http.MethodPut,
http.MethodDelete,
http.MethodPatch,
}
for _, method := range methods {
if method == http.MethodPatch {
fmt.Println("Found PATCH method:", method)
break
}
}
}
Результат выполнения кода:
"Found PATCH method: PATCH"
Смотрите также
-
константу
http.MethodGet,
которая представляет метод HTTP GET -
константу
http.MethodPost,
которая представляет метод HTTP POST -
константу
http.MethodPut,
которая представляет метод HTTP PUT -
константу
http.MethodDelete,
которая представляет метод HTTP DELETE