Какие основные возможности предоставляет Swagger (OpenAPI)?

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

Ответ

Swagger (ныне OpenAPI Specification) — это стандарт и набор инструментов для работы с RESTful API. Основные возможности:

  1. Создание спецификации API: Описание всех эндпоинтов, параметров запроса/ответа, моделей данных и схем ошибок в структурированном формате (YAML/JSON).

  2. Генерация интерактивной документации (Swagger UI): Автоматическое создание веб-интерфейса, где можно:

    • Просматривать все методы API.
    • Отправлять тестовые запросы с реальными параметрами.
    • Просматривать примеры ответов и схемы данных.
  3. Генерация кода: Автоматическая генерация:

    • Клиентских SDK на различных языках (Python, Java, JavaScript).
    • Серверных заглушек (stubs) на основе спецификации.
  4. Тестирование и валидация:

    • Интерактивное тестирование API прямо из документации.
    • Валидация запросов и ответов на соответствие спецификации.

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

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