Метод options
Метод options применяется к экземпляру класса TestClient
и отправляет OPTIONS-запрос по указанному URL.
Первым параметром передаётся путь URL.
Вторым параметром можно передать заголовки, данные или другие настройки запроса.
Метод возвращает объект Response,
из которого можно получить статус-код, заголовки и тело ответа.
OPTIONS-запрос обычно используется для получения информации
о поддерживаемых сервером HTTP-методах и CORS-настройках.
Синтаксис
client.options(url, **kwargs)
Пример
Давайте создадим простое приложение с обработчиком OPTIONS-запроса
и проверим его через TestClient:
from fastapi import FastAPI
from fastapi.testclient import TestClient
app = FastAPI()
@app.options('/items/')
def options_items():
return {'allowed': 'GET, POST'}
client = TestClient(app)
res = client.options('/items/')
print(res.status_code)
print(res.json())
Результат выполнения кода:
200
{'allowed': 'GET, POST'}
Пример
Давайте отправим OPTIONS-запрос с дополнительными заголовками:
from fastapi import FastAPI, Request
from fastapi.testclient import TestClient
app = FastAPI()
@app.options('/items/')
def options_items(request: Request):
origin = request.headers.get('origin')
return {'origin': origin}
client = TestClient(app)
res = client.options(
'/items/',
headers={'Origin': 'https://example.com'}
)
print(res.json())
Результат выполнения кода:
{'origin': 'https://example.com'}
Пример
Давайте проверим заголовок allow в ответе на OPTIONS-запрос:
Результат выполнения кода:
"GET, POST, OPTIONS"
Смотрите также
-
класс
TestClient,
который используется для тестирования приложений FastAPI -
метод
get,
который отправляет GET-запрос к приложению -
метод
head,
который отправляет HEAD-запрос к приложению -
метод
request,
который отправляет запрос с произвольным HTTP-методом