일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 숫자 형식
- html
- 생성자
- 함수 선언
- DoitSQL입문
- 데이터베이스
- 자바 오류
- 예외
- 웹브라우저 수용도
- 배열 예제
- 배열 3요소
- 우아한테크
- 페이지분석
- HTML역사
- DoitSQL
- 크롤링 오류
- SQL입문
- 웹 브라우저 전쟁
- 예제
- SQL
- 키-값 데이터베이스
- dbms
- DoIt
- R1C3
- Doit입문SQL
- 숫자형식오류
- 함수
- 자바 예외
- 자바
- 크롤링
- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 숫자 형식
- html
- 생성자
- 함수 선언
- DoitSQL입문
- 데이터베이스
- 자바 오류
- 예외
- 웹브라우저 수용도
- 배열 예제
- 배열 3요소
- 우아한테크
- 페이지분석
- HTML역사
- DoitSQL
- 크롤링 오류
- SQL입문
- 웹 브라우저 전쟁
- 예제
- SQL
- 키-값 데이터베이스
- dbms
- DoIt
- R1C3
- Doit입문SQL
- 숫자형식오류
- 함수
- 자바 예외
- 자바
- 크롤링
- Today
- Total
프로그래밍
[DRF] APIView와 api_view 본문
2023.11.29.수
API 뷰
API(View)는 웹 애플리케이션에서 클라이언트와 서버 간의 통신을 처리하는 부분이다
API는 일반적으로 HTTP 프로토콜을 사용하여 클라이언트의 요청을 받고, 이에 대한 응답을 생성하는 역할을 한다
요청을 받아 처리하고 응답하는 도중에
DB와 상호작용하거나 다른 서비스와 통신하여 필요한 데이터를 가져오는 등의 작업을 수행할 수 있다
장고에서는 주로 2가지 방식으로 구현된다
api_view
함수 기반 뷰(Function-Based Views)에서 사용되는 방식이며 api_view 데코레이터를 사용한다
함수를 API 뷰로 정의하는 방식이다
request method를 리스트 형식으로 정의하며 각각의 요청의 조건문으로 나누어 처리된다
# api_view 데코레이터 활용
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework import status
@api_view(['GET', 'POST'])
def my_functional_view(request):
if request.method == 'GET':
# 처리 로직
return Response({"message": "GET 요청 처리"}, status=status.HTTP_200_OK)
elif request.method == 'POST':
# 처리 로직
return Response({"message": "POST 요청 처리"}, status=status.HTTP_201_CREATED)
APIView
클래스 기반 뷰(Function-Based Views)에서 사용되는 방식이며 APIView 클래스를 상속받아 정의한다
상속받아 정의한 클래스 내부에 request method 이름에 맞게 구분지어 함수를 정의한다
# APIView 클래스 상속 방식
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
class MyApiView(APIView):
def get(self, request):
# 처리 로직
return Response({"message": "GET 요청 처리"}, status=status.HTTP_200_OK)
def post(self, request):
# 처리 로직
return Response({"message": "POST 요청 처리"}, status=status.HTTP_201_CREATED)
API 뷰의 주요 역할
- 요청 처리: 클라이언트로부터 오는 HTTP 요청을 받아 처리
- 응답 생성: 처리된 결과에 따라 적절한 HTTP 응답을 생성
- 로직 수행: 필요한 비즈니스 로직을 수행하거나 데이터를 처리
- 인증 및 권한 처리: 클라이언트의 인증 여부를 확인하고, 해당 사용자의 권한을 검사
- 시리얼라이저 사용: 데이터를 적절한 형식으로 변환하여 응답 (주로 JSON 형식)
- 데이터베이스 상호작용: 필요하다면 데이터베이스와 상호작용하여 데이터를 저장하거나 검색
API 뷰는 웹 애플리케이션의 백엔드에서 가장 핵심적인 부분 중 하나로, 클라이언트와 서버 간의 효율적인 통신을 가능하게 한다
API 뷰를 통해 연관있는 주요 로직을 모아 관리할 수 있어 응집도가 올라가며 관련된 기능이 모여있어 유지보수에 용이해진다
또한 URL 맵핑을 통일시킬 수 있어 잘못된 요청을 할 가능성을 줄일 수 있다
HTTP 요청에 따른 응답 흐름 이해
2023.11.29 - [Python/Django REST Framework] - [DRF] APIView와 api_view
[DRF] APIView와 api_view
2023.11.29.수 API 뷰 API(View)는 웹 애플리케이션에서 클라이언트와 서버 간의 통신을 처리하는 부분이다 API는 일반적으로 HTTP 프로토콜을 사용하여 클라이언트의 요청을 받고, 이에 대한 응답을 생
dev-9rm.tistory.com
2023.11.29 - [Python/Django REST Framework] - [DRF] Response
[DRF] Response
2023.11.29.수 Response 장고의 Response 클래스는 HTTP 응답을 생성하고 반환하는 데 사용되는 클래스이다 기존의 HttpResponse 클래스를 확장하고 추가적인 기능과 편의성이 제공된다 다양한 데이터를 받
dev-9rm.tistory.com
2023.11.29 - [Python/Django REST Framework] - [DRF] status
[DRF] status
2023.11.29.수 status 장고에서 status는 HTTP 응답 상태 코드를 나타내는데 사용되는 모듈이다 'django.http' 모듈에 포함되어 있으며 각 상태 코드는 'HttpResponse' 객체를 생성할 때 사용된다 HTTP 상태 코드(s
dev-9rm.tistory.com
'Python > Django REST Framework' 카테고리의 다른 글
[DRF] status (0) | 2023.11.29 |
---|---|
[DRF] Response (0) | 2023.11.29 |
[DRF] Serialize(직렬화) (1) | 2023.11.28 |
[DRF] 페이지네이션(Pagination) (2) | 2023.11.28 |
[DRF] Django REST Framework (0) | 2023.11.28 |