Здравствуйте.
Что то никак не пойму как сделать чтобы хорошо обрабатывались и такой запрос:
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 всегда пустое почему то.
Кто знает как быть?