f-lab-edu / realtor

1 stars 0 forks source link

`Property` 모델에 대한 CRUD 구현 #6

Closed f-lab-stephen closed 1 year ago

f-lab-stephen commented 1 year ago

목표

REST API Spec에서 아래 엔드포인트에 해당하는 API를 구현합니다.

제약 조건

태스크

통과 조건 (Acceptance Creteria; AC)

sanghunjo921 commented 1 year ago

serializer

고민점

sanghunjo921 commented 1 year ago

위 사항은 ModelSerializer를 사용해서 좀 더 concise하게 만들 수 있기에 이를 채택하기로 결정했습니다.

f-lab-stephen commented 1 year ago

@sanghunjo921 좋은 흐름입니다! 결국 ModelSerializer를 사용하기를 기대하고 있었습니다 ㅎㅎ

f-lab-stephen commented 1 year ago

(참고용) https://github.com/google/gson 이거는 자바쪽에서 쓰는 serializer인데요. Django REST Framework에서는 built-in으로 제공하는 게 참 다행인 것 같습니다. 스프링에서 serializer 붙이다가 생각나서 보여드립니다! gson은 전혀 공부하실 필요 없습니다.

sanghunjo921 commented 1 year ago

저거 보니까 머리가 아파오네요. 장고로 진행중이라 다행이에요!

일단 챕터1 다 완료후 localhost:8000/properties 테스트 결과 올려봅니다. 현재 데이터가 없어서 별게 안뜨긴 하는데 해당 url이 동작하는거 같습니다.

스크린샷 2023-03-24 오후 4 58 16 스크린샷 2023-03-24 오후 4 58 38
sanghunjo921 commented 1 year ago

postman 설치 후 create 후 get 요청을 재테스트 해봐야겠습니다.

sanghunjo921 commented 1 year ago
스크린샷 2023-03-24 오후 5 26 38 스크린샷 2023-03-24 오후 5 26 10 스크린샷 2023-03-24 오후 5 26 31
sanghunjo921 commented 1 year ago

delete 테스트 결과 status code 301 리다이렉트가 일어나네요. "DELETE /properties/1 HTTP/1.1" 301 0

터미널상으로 확인해보니 DELETE를 하면 get 요청이 리다이렉트되는 버그가 있네요. 일단 관련 다큐먼트들을 봐야겠습니다.

튜토리올을 따라 작성해서 발생한 문제같긴 한데 튜토리올에서는 단순히 get만 테스트 해서 elif request.method == 'DELETE': property.delete() return HttpResponse(status=204) 이런식으로 delete 처리를 하는데 제 생각에는 property.delete() 안에 pk 정의를 하지 않아서 발생한 문제 같습니다.

sanghunjo921 commented 1 year ago

delete 부분을 바꿔보고 다른식으로 구현해봤지만 역시나 똑같은 에러가 발생하네요 !!! https://d-yong.tistory.com/61

챕터3을 보면서 view를 제대로 쓰고나서 다시 테스트 해봐야겠습니다. 현재 구현된 CRUD자체가 완성되있지 않기에 일단 완성부터 시켜볼게요!

sanghunjo921 commented 1 year ago

tutorial3 따라서 클래스 베이스로 전환했는데 delete 요청시 같은 에러가 발생하네요 흠...

sanghunjo921 commented 1 year ago

바보같은 실수를 했네요. delete http://127.0.0.1:8000/properties/2/ 위와 같이 아이디 뒤에 /를 입력해야 아이디가 들어간 요청이 처리됩니다. 특정 매물 정보를 get할때는 저런식으로 하고 delete를 이상하게 테스트해서 요청이 제대로 끝나지 않아서 리다이렉트가 발생했네요

sanghunjo921 commented 1 year ago

generic view 만들어서 포스트맨으로 테스트 결과 기대했던데로 나오네요. 엄청 줄줄줄 코드 작성하다가 generic 사용해서 코드가 엄청 간결해지니까 이걸 쓰는 이유가 더 와닿네요 ㅎㅎ

일단 이슈6에 대한 부분 푸쉬 했습니다.