Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Golang: api, rest, soap, graphql

Что такое API? Чем REST API отличается от других типов API?

Проверяет знание концепции API и умение различать популярные протоколы веб-взаимодействия.

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

API (Application Programming Interface) — набор правил для взаимодействия программ. REST API использует HTTP-методы (GET/POST) и стандартные форматы данных (JSON). Отличается от SOAP (строгий XML-протокол) простотой, а от GraphQL — отсутствием гибкости в запросах. Например, REST требует чётких эндпоинтов (/api/users), а GraphQL позволяет клиенту запрашивать нужные поля.

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

Что такое API:

  • Интерфейс, позволяющий программам общаться друг с другом.

  • Пример: мобильное приложение запрашивает погоду через API сервиса.

Сравнение типов API:

  1. REST (Representational State Transfer):

    • Использует HTTP: GET /api/users, POST /api/orders.

    • Данные в JSON/XML.

    • Стандартные статусы: 200 OK, 404 Not Found.

    // Пример REST-запроса в Go
    resp, err := http.Get("https://api.example.com/users/1")
  2. SOAP (Simple Object Access Protocol):

    • Основан на XML, требует WSDL-схемы.

    • Сложнее, но безопаснее для банковских систем.

    <!-- Пример SOAP-запроса -->
    <soap:Envelope>
      <soap:Body>
        <getUserRequest><id>1</id></getUserRequest>
      </soap:Body>
    </soap:Envelope>
  3. GraphQL:

    • Клиент сам определяет структуру ответа.

    • Запрос:

      query {
        user(id: "1") {
          name
          email
        }
      }

Ключевые отличия REST:

  • Простота: Легко тестировать через браузер или curl.

  • Кэширование: Поддерживает HTTP-кэширование.

  • Ограничения: Не подходит для сложных запросов с вложенными данными (например, «пользователь + его заказы + комментарии»).

Вывод: REST идеален для большинства веб-сервисов, GraphQL — для сложных клиентов, SOAP — для корпоративных систем.

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Golang

    Golang

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

#api

#rest

#soap

#graphql

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