Ошибка анализа данных в python FastAPI - PullRequest
1 голос
/ 16 июня 2020

Я учусь использовать FastAPI, и я получаю эту ошибку снова и снова при реализации простого API, и я не могу понять, почему

"detail": "There was an error parsing the body"

Это происходит со мной на этих двух конечных точках:

Полный код: Репозиторий кода

фрагмент:

app_v1 = FastAPI(root_path='/v1')

# JWT Token request
@app_v1.post('/token')
async def login_access_token(form_data: OAuth2PasswordRequestForm = Depends()):
    jwt_user_dict = {"username": form_data.username, "password": form_data.password}
    jwt_user = JWTUser(**jwt_user_dict)
    user = authenticate_user(jwt_user)
    if user is None:
        return HTTP_401_UNAUTHORIZED
    jwt_token = create_jwt_token(user)
    return {"token": jwt_token}

запрос:

enter image description here

enter image description here

@app_v1.post("/user/photo")
async def update_photo(response: Response, profile_photo: bytes = File(...)):
    response.headers['x-file-size'] = str(len(profile_photo))
    response.set_cookie(key='cookie-api', value="test")
    return {"profile photo size": len(profile_photo)}

запрос: enter image description here

Ответы [ 2 ]

8 голосов
/ 17 июня 2020

Я пытался выяснить, это произошло потому, что, когда был установлен FastAPI, он не устанавливал python -multipart, поэтому в этом пакете отсутствует все, что требует многостраничных падений

После установки все работает нормально

Спасибо

0 голосов
/ 17 июня 2020

Проблема с первым запросом заключается в том, что вы должны отправлять username и password в form-data. Вместо x-www-form-urlencoded используйте form-data, и все будет в порядке.

enter image description here

Я не вижу проблемы со вторым. Можете ли вы попробовать использовать интерфейс Swagger и посмотреть, происходит ли там то же самое?

...