makoxti
@makoxti

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

削除用APIを呼ぶと「h11._util.LocalProtocolError: Too much data for declared Content-Length」が発生する

OS

MAc

言語

Python

Frameword

FastAPI

git

発生している問題・エラー

削除用APIを呼び出すと、以下のエラーがコンソールに出力される。

h11._util.LocalProtocolError: Too much data for declared Content-Length

該当するソースコード

@app.delete("/blog/{id}", status_code=status.HTTP_204_NO_CONTENT)
def delete(id: int, db: Session = Depends(get_db)):
    blog = db.query(models.Blog).filter(models.Blog.id == id)
    if not blog.first():
        raise HTTPException(
            status_code=status.HTTP_404_NOT_FOUND,
            detail=f"Blog with the id {id} is not available",
        )
    blog.delete(synchronize_session=False)
    db.commit()

    return "Deletion completed"

わかる方いらっしゃいましたらご教授いただけると幸いです。
よろしくお願いいたします。

0

1Answer

Comments

  1. @makoxti

    Questioner

    ありがとうございます。
    色々試したのですが、204を指定するとエラーになってしまいました。
    なので、結論として以下の実装にすることにしました。
    これならエラーにならなかったです。

    @app.delete("/blog/{id}")
    def delete(id: int, db: Session = Depends(get_db)):
    blog = db.query(models.Blog).filter(models.Blog.id == id)
    if not blog.first():
    raise HTTPException(status_code=404, detail="NoData")
    blog.delete(synchronize_session=False)
    db.commit()
    return Response(status_code=status.HTTP_200_OK)

Your answer might help someone💌