Метод request
Метод request применяется к экземпляру класса TestClient
и выполняет HTTP-запрос к тестируемому приложению FastAPI.
Первым параметром передаётся HTTP-метод в виде строки, например 'GET'
или 'POST'. Вторым параметром передаётся путь URL.
Дополнительно можно передать параметры запроса, тело, заголовки и куки.
Метод возвращает объект ответа, у которого доступны статус-код,
заголовки и тело в виде JSON.
Синтаксис
client.request(method, url)
Пример
Давайте выполним GET-запрос к корневому маршруту:
<+python+>
from fastapi import FastAPI
from fastapi.testclient import TestClient
app = FastAPI()
@app.get('/')
def index():
return {'text': 'hello'}
client = TestClient(app)
res = client.request('GET', '/')
print(res.status_code)
print(res.json())
<-python+>
Результат выполнения кода:
200
{"text": "hello"}
Пример
Давайте выполним POST-запрос с телом в формате JSON:
<+python+>
from fastapi import FastAPI
from fastapi.testclient import TestClient
from pydantic import BaseModel
app = FastAPI()
class User(BaseModel):
name: str
@app.post('/user')
def create_user(user: User):
return {'name': user.name}
client = TestClient(app)
res = client.request('POST', '/user', json={'name': 'abcde'})
print(res.status_code)
print(res.json())
<-python+>
Результат выполнения кода:
200
{"name": "abcde"}
Пример
Давайте выполним DELETE-запрос с параметром в URL:
<+python+>
from fastapi import FastAPI
from fastapi.testclient import TestClient
app = FastAPI()
@app.delete('/user/{name}')
def delete_user(name: str):
return {'deleted': name}
client = TestClient(app)
res = client.request('DELETE', '/user/abcde')
print(res.status_code)
print(res.json())
<-python+>
Результат выполнения кода:
200
{"deleted": "abcde"}
Смотрите также
-
класс
TestClient,
который используется для тестирования приложений FastAPI -
метод
get,
который выполняет GET-запрос к приложению -
метод
post,
который выполняет POST-запрос к приложению -
метод
websocket_connect,
который устанавливает WebSocket-соединение с приложением