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

Константа http.StatusOK представляет собой числовое значение 200, которое соответствует стандартному HTTP-коду состояния успешного ответа. Она используется в пакете net/http для отправки клиенту статуса, означающего, что запрос успешно обработан. Вместо магического числа 200 рекомендуется использовать эту константу для улучшения читаемости кода.

Синтаксис

gohttp.StatusOK

Пример

Давайте создадим простой HTTP-сервер, который всегда возвращает статус 200 OK:

gopackage main

import (
  "fmt"
  "net/http"
)

func main() {
  http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    w.WriteHeader(http.StatusOK)
    fmt.Fprintln(w, "Request processed successfully")
  })

  http.ListenAndServe(":8080", nil)
}

Пример

Давайте отправим статус 200 OK вместе с JSON-ответом:

gopackage main

import (
  "encoding/json"
  "net/http"
)

func main() {
  http.HandleFunc("/api/data", func(w http.ResponseWriter, r *http.Request) {
    data := map[string]string{"status": "success", "message": "Data retrieved"}
    jsonData, _ := json.Marshal(data)

    w.Header().Set("Content-Type", "application/json")
    w.WriteHeader(http.StatusOK)
    w.Write(jsonData)
  })

  http.ListenAndServe(":8080", nil)
}

Пример

Давайте сравним поведение с другими статусами:

gopackage main

import (
  "fmt"
  "net/http"
)

func main() {
  http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    if r.Method == "GET" {
      w.WriteHeader(http.StatusOK)
      fmt.Fprintln(w, "GET request successful")
    } else {
      w.WriteHeader(http.StatusMethodNotAllowed)
      fmt.Fprintln(w, "Method not allowed")
    }
  })

  http.ListenAndServe(":8080", nil)
}

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

  • константу http.StatusNotFound,
    которая соответствует коду 404 Not Found
  • константу http.StatusInternalServerError,
    которая соответствует коду 500 Internal Server Error
  • константу http.MethodGet,
    которая представляет HTTP-метод GET
  • функцию http.Error,
    которая отправляет ошибку с указанным статусом