Какие контракты используют в REST

«Какие контракты используют в REST» — вопрос из категории Сети, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

REST использует несколько ключевых контрактов (принципов), обеспечивающих его архитектуру:

  1. Ресурсы – всё представляется в виде ресурсов (URI).
  2. HTTP-методы – CRUD операции через GET, POST, PUT, DELETE и др.
  3. Без состояния (Stateless) – сервер не хранит состояние клиента.
  4. Кэширование – ответы могут кэшироваться.
  5. Единообразие интерфейса – стандартизация взаимодействия.
  6. Клиент-серверная архитектура – разделение ответственности.

Пример кода на Go (обработка REST-запроса):

func handleUser(w http.ResponseWriter, r *http.Request) {
    switch r.Method {
    case "GET":
        fmt.Fprintf(w, "Получение пользователя")
    case "POST":
        fmt.Fprintf(w, "Создание пользователя")
    default:
        w.WriteHeader(http.StatusMethodNotAllowed)
    }
}