Что такое Swagger (OpenAPI)?

«Что такое Swagger (OpenAPI)?» — вопрос из категории Инструменты тестирования, который задают на 24% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Swagger — это набор инструментов для работы со спецификацией OpenAPI — стандартным форматом для описания RESTful API.

Основные компоненты и возможности:

  1. OpenAPI Specification (OAS): Файл в формате YAML/JSON, описывающий все эндпоинты, параметры, модели данных и ответы API.
  2. Swagger UI: Интерактивная веб-документация, автоматически генерируемая из OAS-файла. Позволяет:
    • Изучить API.
    • Выполнять «живые» запросы к серверу.
    • Просматривать схемы ответов.

Пример фрагмента спецификации OpenAPI (YAML):

paths:
  /users/{userId}:
    get:
      summary: Получить пользователя по ID
      parameters:
        - name: userId
          in: path
          required: true
          schema:
            type: integer
            example: 42
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'

Применение в тестировании:

  • Контрактное тестирование: Автоматическая проверка, что реализация API соответствует его документации (OAS-файлу).
  • Генерация тестовых данных: Использование схем (schema) из спецификации для создания валидных запросов.
  • Валидация ответов: Сверка структуры и типов данных в ответах сервера с описанными в спецификации.