fastAPI pydantic JSON input should be string error. Помогите

Всем привет. Подскажите, что не так. fastAPI выглядит так:

class AnyJSON(BaseModel):
    json_obj: Json[Any]

@app.post("/newchips/")
async def newchips(old_chips: AnyJSON):
    return old_chips.json_obj;

Вызывается с фронта через XMLHttpRequest:

req = new XMLHttpRequest();
reqBody1 = {"chips" : "тест",
             "rules": "тест"
           };
reqBody1 = {"json_obj" : reqBody1};       
req.open("POST", "http://tttt/newchips/",true);
req.setRequestHeader('Content-Type', 'application/json; charset=utf-8');
req.send(JSON.stringify(reqBody1));

Выдает ошибку:

"detail":[{"type":"json_type","loc":["body","json_obj"],"msg":"JSON input should be string, bytes or bytearray","input":{"chips":"тест","rules":"тест"}

Если поменять тип json_obj на str, то все равно ошибка:

{"type":"string_type","loc":["body","json_obj"],"msg":"Input should be a valid string","input":{"chips":"тест","rules":"тест"}

При этом в последнем случае, если передаваемый json простой:

reqBody1 = {"json_obj" : "тест"};

то все работает. Куда копать? Есть способ получить body не используя pydantic, но хотелось бы понять, как он валидирует и что не так.


Ответы (0 шт):