Skip to main content

APIRequest

Предоставляет API, который можно использовать для тестирования Web API. Этот класс используется для создания экземпляра [APIRequestContext], который, в свою очередь, может быть использован для отправки веб-запросов. Экземпляр этого класса можно получить через playwright.request. Для получения дополнительной информации смотрите [APIRequestContext].


Методы

newContext

Добавлено в: v1.16 apiRequest.newContext

Создает новые экземпляры [APIRequestContext].

Использование

await apiRequest.newContext();
await apiRequest.newContext(options);

Аргументы

  • options [Object] (необязательно)
    • baseURL [string] (необязательно)#

      Методы, такие как apiRequestContext.get(), учитывают базовый URL, используя конструктор URL() для построения соответствующего URL. Примеры:

      • baseURL: http://localhost:3000 и отправка запроса на /bar.html приводит к http://localhost:3000/bar.html
      • baseURL: http://localhost:3000/foo/ и отправка запроса на ./bar.html приводит к http://localhost:3000/foo/bar.html
      • baseURL: http://localhost:3000/foo (без завершающего слэша) и навигация на ./bar.html приводит к http://localhost:3000/bar.html
    • clientCertificates [Array]<[Object]> (необязательно) Добавлено в: 1.46#

      • origin [string]

        Точный источник, для которого сертификат действителен. Источник включает протокол https, имя хоста и, при необходимости, порт.

      • certPath [string] (необязательно)

        Путь к файлу с сертификатом в формате PEM.

      • cert [Buffer] (необязательно)

        Прямое значение сертификата в формате PEM.

      • keyPath [string] (необязательно)

        Путь к файлу с закрытым ключом в формате PEM.

      • key [Buffer] (необязательно)

        Прямое значение закрытого ключа в формате PEM.

      • pfxPath [string] (необязательно)

        Путь к PFX или PKCS12 закодированному закрытому ключу и цепочке сертификатов.

      • pfx [Buffer] (необязательно)

        Прямое значение PFX или PKCS12 закодированного закрытого ключа и цепочки сертификатов.

      • passphrase [string] (необязательно)

        Пароль для закрытого ключа (PEM или PFX).

      TLS аутентификация клиента позволяет серверу запрашивать клиентский сертификат и проверять его.

      Подробности

      Массив клиентских сертификатов, которые будут использоваться. Каждый объект сертификата должен иметь либо оба certPath и keyPath, либо один pfxPath, либо их соответствующие прямые значения (cert и key, или pfx). Опционально, свойство passphrase должно быть предоставлено, если сертификат зашифрован. Свойство origin должно быть предоставлено с точным соответствием к исходному запросу, для которого сертификат действителен.

      note

      При использовании WebKit на macOS доступ к localhost не будет использовать клиентские сертификаты. Вы можете заставить это работать, заменив localhost на local.playwright.

    • extraHTTPHeaders [Object]<[string], [string]> (необязательно)#

      Объект, содержащий дополнительные HTTP заголовки, которые будут отправлены с каждым запросом. По умолчанию отсутствуют.

    • failOnStatusCode [boolean] (необязательно) Добавлено в: v1.51#

      Указывает, следует ли выбрасывать исключение при кодах ответа, отличных от 2xx и 3xx. По умолчанию объект ответа возвращается для всех кодов состояния.

    • httpCredentials [Object] (необязательно)#

      • username [string]

      • password [string]

      • origin [string] (необязательно)

        Ограничивает отправку http учетных данных на конкретный источник (scheme://host:port).

      • send "unauthorized" | "always" (необязательно)

        Эта опция применяется только к запросам, отправленным из соответствующего [APIRequestContext], и не влияет на запросы, отправленные из браузера. 'always' - заголовок Authorization с учетными данными базовой аутентификации будет отправлен с каждым API запросом. 'unauthorized - учетные данные отправляются только при получении ответа 401 (Unauthorized) с заголовком WWW-Authenticate. По умолчанию 'unauthorized'.

      Учетные данные для HTTP аутентификации. Если источник не указан, имя пользователя и пароль отправляются на любые серверы при несанкционированных ответах.

    • ignoreHTTPSErrors [boolean] (необязательно)#

      Указывает, следует ли игнорировать ошибки HTTPS при отправке сетевых запросов. По умолчанию false.

    • proxy [Object] (необязательно)#

      • server [string]

        Прокси, который будет использоваться для всех запросов. Поддерживаются HTTP и SOCKS прокси, например http://myproxy.com:3128 или socks5://myproxy.com:3128. Короткая форма myproxy.com:3128 считается HTTP прокси.

      • bypass [string] (необязательно)

        Необязательные домены, разделенные запятыми, для обхода прокси, например ".com, chromium.org, .domain.com".

      • username [string] (необязательно)

        Необязательное имя пользователя для использования, если HTTP прокси требует аутентификации.

      • password [string] (необязательно)

        Необязательный пароль для использования, если HTTP прокси требует аутентификации.

      Настройки сетевого прокси.

    • storageState [string] | [Object] (необязательно)#

      • cookies [Array]<[Object]>
        • name [string]

        • value [string]

        • domain [string]

        • path [string]

        • expires [number]

          Время Unix в секундах.

        • httpOnly [boolean]

        • secure [boolean]

        • sameSite "Strict" | "Lax" | "None"

      • origins [Array]<[Object]>
        • origin [string]

        • localStorage [Array]<[Object]>

          • name [string]

          • value [string]

      Заполняет контекст заданным состоянием хранения. Эта опция может быть использована для инициализации контекста с информацией о входе, полученной через browserContext.storageState() или apiRequestContext.storageState(). Либо путь к файлу с сохраненным состоянием, либо значение, возвращаемое одним из методов browserContext.storageState() или apiRequestContext.storageState().

    • timeout [number] (необязательно)#

      Максимальное время в миллисекундах для ожидания ответа. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут.

    • userAgent [string] (необязательно)#

      Специфический пользовательский агент для использования в этом контексте.

Возвращает

  • [Promise]<[APIRequestContext]>#