작성
·
11
0
학습 중에 fastapi는 get과 post만 지원하기 때문에 별도로 미들웨어를 이용해 put, patch, delete를 구현해야 한다고 이해를 하게 되었습니다.
헌데 다른 학습 웹 문서나, gpt에게 여러 요청을 통해 확인을 하는 과정에서 app. 혹은 @router. 을 사용해 이미 지원되는 put, patch, delete를 사용할 수 있다고 설명을 하는 것을 확인할 수 있었습니다.
제가 학습 영상에 대해 이해를 잘못하고 있는 것인지 혹 놓친게 있는지 알고 싶어 질문을 드립니다.
답변 1
0
안녕하십니까,
FastAPI가 지원을 안 하는게 아니라 HTML이 PUT/PATCH/DELETE HTTP Method를 지원하지 않습니다. HTML Form 태그는 POST/GET 만 지원하므로 HTML을 파싱해서 Request를 올리는 브라우저 기반에서는 PUT/PATCH/DELETE Method를 요청할 수 없습니다.
때문에 Method override와 같이 Form 태그에 약간의 꼼수(?)를 적용한 뒤 이를 미들웨어에서 파싱/해석하여 FastAPI의 @app.put, @app.patch @app.delete등으로 PUT/PATCH/DELETE를 수행하는 것입니다(Express js와 같은 타 웹 프레임워크도 이와 유사한 방식으로 처리합니다)
브라우저 기반이 아닌 다른 REST API Client 예를 들어, Thunder Client나 Postman은 HTML기반이 아니므로 PUT/PATCH/DELETE 요청을 바로 FastAPI에 수행할 수 있습니다.
강의에서 위 내용으로 설명을 드리오니, 다시 한번 강의를 보시면 좋을 것 같습니다.
감사합니다.