Здесь вы создали маршрут, который принимает GET-запрос с обязательным JSON-телом:
@app.get('/user')
def get_user(req: requests.IGetUser):
return {}
Но из axios вы отправляете GET-запрос с телом в формате формы (application/x-www-form-urlencoded), а не JSON, поэтому происходит ошибка валидации запроса и возвращается код ответа 422.
Лучше принимайте "email" и "password" в параметрах запроса (query parameters), а не в теле, т.к., в общем,
не рекомендуется отправлять GET-запросы с телом: для отправки полезной нагрузки (в формате JSON, формы и пр.) обычно используют другие типы запросов (POST, PUT, PATCH и пр.) Как принимать параметры запросов в FastAPI, описано
в официальной документации.
В вашем случае можно сделать так:
@app.get('/user')
def get_user(email: str, password: str):
return {}
Тогда запрос из axios можно отправлять так:
axios.get('http://localhost:8000/user', {
params: {
email: 'user',
password: 'user'
}
}).then(r =>
console.log(r)
)