728x90
목차
- 사전 준비
- ModelSerializer
- Build RESTful API - Article
1. 사전 준비
- Postman 설치
- https://www.postman.com/downloads/
- Postman
- API를 구축하고 사용하기 위한 플랫폼
- API를 빠르게 만들 수 있는 여러 도구 및 기능을 제공
- DRF 설치, 등록 및 패키지 목록 업데이트
pip install djangorestframework
pip freeze > requirements.txt
2. ModelSerializer
ModelSerializer 작성
- articles/serializers.py 생성
- serializers.py의 위치나 파일명은 자유롭게 작성 가능
- ModelSeiralizer 작성
- ModelSerializer 클래스는 모델 필드에 해당하는 필드가 있는 Serializer 클래스를 자동으로 만들 수 있는 shortcut을 제공
- Model 정보에 맞춰 자동으로 필드를 생성
- serializer에 대한 유효성 검사기를 자동으로 생성
- .create() 및 .update()의 간단한 기본 구현이 포함됨
ModelSerializer의 'many' option
- 단일 객체 인스턴스 대신 QuerySet 또는 객체 목록을 serialize 하려면 many=True를 작성해야 함
3. Build RESTful API - Article
URL과 HTTP requests methods 설계
GET - List
- 게시글 데이터 목록 조회하기
- DRF에서 api_view 데코레이터 작성은 필수
'api_view' decorator
- DRF view 함수가 응답해야 하는 HTTP 메서드 목록을 받음
- 기본적으로 GET 메서드만 허용되며 다른 메서드 요청에 대해서는 405 Method Not Allowed로 응답
GET - detail
- 단일 게시글 데이터 조회하기
- 각 데이터의 상세 정보를 제공하는 ArticleSerializer 정의
- url 및 view 함수 작성
POST
- 게시글 데이터 생성하기
- 요청에 대한 데이터 생성이 성공했을 경우는 201 Created 상태 코드를 응답하고 실패했을 경우는 400 Bad request를 응답
- 요청에 대한 데이터 생성이 성공했을 경우는 201 Created 상태 코드를 응답하고 실패 했을 경우는 400 Bad request를 응답
Raising an exception on invalid data
- "유효하지 않은 데이터에 대해 예외 발생시키기"
- is_valid()는 유효성 검사 오류가 있는 경우 ValidationError 예외를 발생시키는 선택적 raise_exception 인자를 사용할 수 있음
- DRF에서 제공하는 기본 예외 처리기에 의해 자동으로 처리되며 기본적으로 HTTP 400 응답을 반환
DELETE
- 게시글 데이터 삭제하기
- 요청에 대한 데이터 삭제가 성공했을 경우는 204 No Content 상태 코드 응답
- 명령을 수행했고 더 이상 제공할 정보가 없는 경우
PUT
- 게시글 데이터 수정하기
- 요청에 대한 데이터 수정이 성공했을 경우는 200 OK 상태 코드 응답
728x90
'Back-end > Django' 카테고리의 다른 글
[Django] REST framework - N:1 Relation (0) | 2022.10.20 |
---|---|
[Django] Response JSON (0) | 2022.10.20 |
[Django] REST API (0) | 2022.10.18 |
[DB with Django] M:N (User - User) (0) | 2022.10.13 |
[DB with Django] M:N (Article - User) (0) | 2022.10.13 |