Не пойму, как сделать, чтобы хорошо обрабатывались и такой запрос:
curl -X POST "http://127.0.0.1/reg" --data 'phone=+37423942938&accountType=111'
и такой:
curl -X POST "http://127.0.0.1/reg" --data 'accountType=111'
Код сервера вот такой:
from fastapi import FastAPI, Form
from typing import Annotated
import uvicorn
fast_api = FastAPI()
@fast_api.post('/reg')
async def handler_response(phone: Annotated[str, None, Form()], accountType: Annotated[str, None, Form()]):
print('phone', phone)
print('accountType', accountType)
return 'ok'
uvicorn.run(fast_api, host = '0.0.0.0', port = 80)
Возвращает ошибку
{"detail":[{"type":"missing","loc":["body","phone"],"msg":"Field required","input":null,"url":"https://errors.pydantic.dev/2.0.3/v/missing"}]}
если в запросе отсутствует поле phone.
Также пытался так сделать
phone: Union[Annotated[str, Form()], None] = ''
тоже не вариант, ошибок не возвращает но и phone всегда пустое почему-то.
Кто знает как быть?