Документация / OpenAPI

Пути и операции

Paths — пути

Объект paths содержит относительные пути к ресурсам. Путь начинается с / и добавляется к адресу сервера из servers (обычная конкатенация). Сегменты в фигурных скобках — шаблоны пути: их значения передаются параметрами in: path.

paths:
  /orders:
    get: ...
  /orders/{orderId}:
    get: ...
  /orders/{orderId}/items:
    get: ...

Правила:

  • пути с одинаковой структурой, отличающиеся только именем шаблона, считаются одинаковыми и недопустимы (/orders/{id} и /orders/{orderId});
  • при совпадении конкретный путь имеет приоритет над шаблоном: /orders/mine выбирается раньше /orders/{id};
  • у каждого шаблона пути должен быть описан параметр in: path с таким же именем.

Path Item — операции пути

ПолеОписание
summary, descriptionОписание, общее для всех операций пути.
get, put, post, delete, options, head, patch, traceОперации по HTTP-методам.
serversСерверы только для этого пути.
parametersПараметры, общие для всех операций пути; операция может переопределить параметр с тем же name и in.
$refСсылка на описание пути в другом месте.

Operation — операция

ПолеОписание
tagsТеги для группировки в документации.
summaryКраткое описание (одна строка).
descriptionПодробное описание (CommonMark).
operationIdУникальный идентификатор операции во всём API; генераторы кода делают из него имя метода.
parametersПараметры операции.
requestBodyТело запроса.
responsesОбязательное. Возможные ответы.
callbacksОбратные вызовы (запросы, которые API отправит клиенту).
deprecatedtrue — операция устарела и не рекомендуется.
securityСхемы безопасности операции (заменяют корневые; [] — операция без авторизации).
serversСерверы только для этой операции.
externalDocsСсылка на внешнюю документацию.
openapi: 3.0.3
info:
  title: API заказов
  version: 1.0.0
paths:
  /orders/{orderId}:
    parameters:
      - name: orderId
        in: path
        required: true
        description: Идентификатор заказа
        schema:
          type: string
          format: uuid
    get:
      tags: [Заказы]
      summary: Получить заказ
      operationId: getOrder
      responses:
        '200':
          description: Заказ
        '404':
          description: Заказ не найден
    delete:
      tags: [Заказы]
      summary: Отменить заказ
      description: |
        Отменить можно только неоплаченный заказ.
      operationId: cancelOrder
      deprecated: true
      responses:
        '204':
          description: Заказ отменён
        '409':
          description: Заказ уже оплачен

Callbacks — обратные вызовы

Callback описывает запросы, которые сервер отправит клиенту — например, вебхук после оплаты. Ключ — выражение, по которому вычисляется адрес: {$request.body#/callbackUrl} берёт адрес из тела исходного запроса.

paths:
  /payments:
    post:
      summary: Создать платёж
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  type: number
                callbackUrl:
                  type: string
                  format: uri
      responses:
        '201':
          description: Платёж создан
      callbacks:
        paymentStatus:
          '{$request.body#/callbackUrl}':
            post:
              requestBody:
                content:
                  application/json:
                    schema:
                      type: object
                      properties:
                        status:
                          type: string
              responses:
                '200':
                  description: Уведомление принято

Кроме тела запроса, в выражениях доступны $url, $method, $request.path.имя, $request.query.имя, $request.header.имя, $response.body#/указатель и $response.header.имя.

Обновлено: 30 сентября 2026 г.