[DRF] Issue Report - view와 URL

Yungsang Hwang·2022년 7월 14일
0

Django-Rest-Framework

목록 보기
10/15
post-thumbnail

Issue Report - view와 URL

urls.py의 하나의 뷰를 왜 두 개의 URL로 나눠서 실행하나요?

  • 그것은 수정할 때는 어떤 공지사항인지 확인할 필요가 있어서에요!
  • 그렇다면 어떤 오브젝트인지 호출할 id가 필요합니다!
  • 그래서 id를 추가로 받아야 하는데요
  • 다른 메서드에서는 id를 필요로 하지 않으니깐 put에서만 작동시킬 URL을 따로 만드는 겁니다!
  • 그렇게 되면 get, post 메서드에서는 http://localhost:8000/webmaster 로 실행하고
  • put, delete 메서드에서는 http://localhost:8000/webmaster/<int:id> 에서 실행합니다
  • 이게 헷갈리는 이유는 어떻게 나뉘어서 실행되지? 일텐데
  • 이건 Javascript fetch API에 일일히 주소를 써줄거라서 괜찮아요

URL이름을 정해주는 방법에 대해서

  • 클래스 뷰는 하나의 클래스에 HTTP METHOD (POST, GET, PUT, DELETE)를 모두 실행할 수 있다
  • 따라서 하나의 URL에 요청하는 REQUEST에 따라서 네 가지의 뷰를 각각 실행할 수 있는 것이다!
  • 그런데, 위와 같이 아이디를 추가로 받아야 하는 PUT, DELETE 메서드의 경우에는 URL을 추가로 작성해야 한다!
  • 이 때, URL의 이름은 어떻게 적는 것이 좋을까?
  1. 앱이름/<int:id> 로 통일한다
    • 이름을 통일해서 사용하면 id를 받는 PUT, DELETE 요청 둘 다 하나의 URL로 받게 된다!
    • 통일성을 고려한다면 좋은 선택방식
  2. 각 메서드의 방식에 따라 다르게 적어준다
    • update, delete 와 같이 URL을 잘 볼 수 있게 적어준다
      • webmaster/update/<int:id>
      • webmaster/delete/<int:id>
    • 나눠서 적어준다면, 가독성이 올라가 어떤 내용이 있는지 확인할 수 있게된다
    • 그런데 클래스뷰에 모두 명시되어 있는데 과연 URL이 추가로 필요할 지는 고민해 볼 필요가 있다
profile
하루종일 몽상가

0개의 댓글