인프런 DRF 강의 정리
api 확인 방법
- fetch/xhr
- xhr, xml httprequest요청만 골라서 볼 수 있음(ajax와 같음)
- headers : 요청
- preview : 응답
api
- api/post/list
- api/post/3
- api/catetag/
- api/like/3/
- api/comment/create/
- django에서 만든 5개 api
- class based view
- django rest framework
restful url 규칙
- 테이블 기준으로 이름을 지어주면 좋음
- app이름/테이블이름/xxx
- /api/post, api/post/99 두가지로만 구성
- method로 동작 구분, url에 표현하지 않음
- 끝에 슬래쉬 붙이지 않는 편이나, django는 붙이는 것을 권장
DRF API 모드
인증 기능 오버뷰
create
- 응답코드, 응답바디(유저 정보)
- delete는 응답바디가 없으나, 클라이언트와 서버 간 약속을 한다면 장고쪽에서 응답 바디를 보내주는 식으로 코딩 할 수 있음
- url에는 단수로 씀(s를 안붙임)
- viewset, router를 파악하기 쉽지 않음 => 공식 홈페이지에서 사용
url로 불러오는 클래스
- api/kk/users
- UserViewSet.as_view() 클래스가 호출됨
- DefaultRouter, simplerouter 사용
- users는 get, post 가능
- pk는 get, put, delete, patch 이 라우터에 의해 만들어짐
- defaultrouter만 가능한 것
- api root(api/)
- format suffix(users.json, user.api, users/99.json, users/99.api)
- users.json는 json형식으로 브라우저에서 보여짐
- 접미사는 쿼리스트링으로도 가능함
ModelViewSet
- 공식문서 튜토리얼 메뉴에 샘플코드가 들어있음
- api가이드 메뉴가 drf메인 기능
- topics 메인 기능은 아니지만 이슈가 될 주제들
- 커뮤니티 > tutorials 앤 리소스 클릭해보면 샘플코드와 비디오, 아티클이 있음
- drf는 cdrf.co 사이트 참고, cbv는 ccbv.co.uk사이트 참고
- mixins 모아서 generics만들었고 그것 모아서 viewsets만듦
- 상속 계층도가 있음, 제일 밑에 있는게 최상위 클래스
- listcreateview = createapiview + listapiview
- 위 이미지 5개 뷰 조합이
modelviewset