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, но хотелось бы понять, как он валидирует и что не так.