Использую https://github.com/tiangolo/fastapi для построения api и документации openapi (он умеет из коробки это делать и выводить в swagger ui) Есть роут с кодом:
@router.post('/auth')
def create_user(user: UserSchemas.UserBase, db: Session = Depends(get_db)):
# check user for waiting sms
user_waiting_sms = \
user_crud.get_user_sms_wait(db, number=user.number, is_active=False)
if user_waiting_sms is not None and user_waiting_sms.sms_id is not None:
# if we waiting sms
if user_waiting_sms.expire_sms > int(time()):
return {'status': 1, 'msg': 'Wait for sms code'}
else:
user_crud.reset_expire_sms(db, number=user.number)
r = alphasms(user.number, 'test1', 'privet test1')
if 'id' in r:
user_crud.update_user_sms_expire(
db, number=user.number, sms_id=r['id'], expire_sms=(int(time())+300))
return {'status': 2, 'msg': 'Sms code is resend'}
else:
raise HTTPException(status_code=202, detail="Error send message")
видно что response и validation error по дефолту установлены, окей.
Вопрос заключается в том, разве в openapi спецификации не предусмотрено что ответов может быть несколько ? Успех либо нет, так же несколько ошибок валидации? И как вообще это правильно описывать?