Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Golang: rest, http, api, design

Что такое REST? Какие принципы лежат в его основе?

Оценивает понимание архитектурных принципов RESTful-систем.

Короткий ответ

REST (Representational State Transfer) — стиль архитектуры для веб-сервисов. Основные принципы: единообразие интерфейса (URL для ресурсов), отсутствие состояния (каждый запрос самодостаточен), кэшируемость. Например, ресурс пользователь всегда доступен по URL /api/users, а не /getUser.

Длинный ответ

6 принципов REST:

  1. Единообразие интерфейса:

    • Ресурсы идентифицируются URL: /api/books/123.

    • Действия определяются HTTP-методами: GET (получить), POST (создать).

  2. Stateless (без состояния):

    • Сервер не хранит данные сессии между запросами.

    • Каждый запрос содержит всю информацию (например, токен в заголовке Authorization).

  3. Кэшируемость:

    • Ответы помечаются как кэшируемые (Cache-Control).

    // Пример кэширования в Go
    w.Header().Set("Cache-Control", "max-age=3600") // Кэш на 1 час
  4. Клиент-серверное разделение:

    • Фронтенд и бэкенд развиваются независимо.

  5. Многоуровневая система:

    • Допускает прокси, балансировщики нагрузки.

  6. Код по требованию (опционально):

    • Сервер может возвращать исполняемый код (например, JavaScript).

Пример RESTful API на Go:

func main() {
    	http.HandleFunc("/api/books/", handleBooks) // Единый эндпоинт для книг

    	func handleBooks(w http.ResponseWriter, r *http.Request) {
        	id := path.Base(r.URL.Path) // /api/books/123 → id="123"
        	switch r.Method {
        		case "GET": 
            			// Получить книгу
        		case "DELETE":
           			// Удалить книгу
        	}
    	}
}

Нарушение принципов:

  • Использование глаголов в URL: GET /api/getBook?id=1 (нарушает единообразие).

Вывод: Следование REST делает API предсказуемым и удобным для разработчиков.

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    4

Навыки

  • Golang

    Golang

Ключевые слова

#rest

#http

#api

#design

Подпишись на Golang Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.