Django-REST-Framework 튜토리얼 파트 4
-
인증과 권한
-
인증, 권한에 대한 기능
코드 조각은 만든 사람과 연관됨
인증받은 사용자만 코드 조각 만들수 있음
해당 코드 조각을 만든 사람만 이를 편집하거나 삭제할 수 있음
인증받지 않은 사용자는 ‘읽기 전용’ 으로만 사용 가능
-
모델에 속성 추가하기
-
model.ForeignKey
코드 조각 만든 사람 가리킴
-
highliteed
하이라이트된 코드를 HTML 형태로 저장
-
pygments
코드 하이라이팅하는 라이브러리
-
-
사용자 모델에 엔드포인트 추가하기
글 모델과 사용자 모엘이 반대 방향으로 이어져 있을 시 ModelSerializer에 기본적으로 추가되지 않으므로 명시적으로 필드 지정
-
ListAPIView, RetrieveAPIView
읽기 전용 제네릭 클래스 기반 뷰
-
-
사용자가 만든 코드 조각 연결하기
코드 조각과 해당 코드 조각을 만든 사용자와 연관 관계 맺음
-
.perform_create()
인스턴스를 저장하는 과정 조정
요청이나 요청 URL에서 저옵를 가져와 원하는 대로 다룰 수 있음
검증한 요청 데이터에 더하여 ‘owner’ 필드로 전달
-
-
시리얼라이저 업데이트하기
시리얼라이저에서 owner 필드 추가
-
ReadOnlyField()
source 인자로 특정 필드 지정
직렬화된 인스턴스의 속성 뿐만 아니라 마침표 표기 방식을 통해 특정 속성을 탐색할 수 있음
직렬화에 사용됐을 떄 언제나 읽기 전용
CharField(read_only)와 같은 기능
-
-
뷰에 요청 권한 추가
생성/업데이트/삭제 에 대한 권한 부여
DRF에선 특정 뷰에 제한을 걸 수 있는 권한 클래스 제공함
-
IsAuthenticatedOrReadOnly
인증 받은 요청에 읽기와 쓰기 권한 부여.
인증 받지 않은 요청에 대해서는 읽기 권한만 부여
-
-
탐색 가능한 API에 로그인 추가
urls.py 수정하여 탐색 가능한 API 에 사용할 로그인 뷰 추가
-
URL 패턴
namespace에 ‘rest_framework’ 지정해야 함
-
-
객체 수준에서 권한 설정
코드 조각에 대한 업데이트/삭제를 해당 코드 만든 사용자만 할 수 있게 권한 부여
-
permission.py
커스텀 권한
-
-
API에 인증 붙이기
웹 브라우저로 API 사용 시 로그인 하면 브라우저의 세션에 인증 정보 저장됨
프로그램 상에서 API 사용하는 경우 인증에 필요한 내용 명시적으로 전달
-