Django DRF(Django Rest Framework) View의 종류
1. APIView(CBV) - 클래스형 뷰
2. @api_view(FBV) - 함수형 뷰
이 2개 중 FBV 활용하는 법 알아보기
DRF(Django Rest Framework)가 세팅이 안되어 있으면 이전 포스팅 참고: Django-Swagger-DRF-Setting
■ @api_view(FBV) - 함수형 뷰 사용 및 활용법
1. 뷰를 작성할 때 함수 위에 @api_view와 같이 Decorator(데코레이터)를 사용한다.
2. Decorator(데코레이터)를 사용하여 GET, POST API를 만드는 방법이다.
# App의 views.py
@api_view(['GET'])
def get_test(request):
return Response(request)
# tags: API 명칭 설명
# manual_parameters: API에 Parameter 생성 (하단 api_params.py)
@swagger_auto_schema(method="POST", tags=["새로운 이름"], manual_parameters=get_test_params,
operation_summary="api 이름", operation_description="api 사용법",
responses={201: '201 Description', 400: '400 Description', 500: '500 Description'})
@api_view(['POST']) # POST API
def post_test(request):
return Response(request)
@swagger_auto_schema(method="PUT", tags=["새로운 이름"])
@api_view(['PUT']) # PUT API
def put_test(request):
# 5번 참고
"""
# 제목 크기 1
## 제목 크기 2
### 제목 크기 3
#### 제목 크기 4
##### 제목 크기 5
###### 제목 크기 6
[나의 블로그](https://200-rush.tistory.com/ "나의 블로그 설명")
"""
return Response(request)
@api_view(['GET', 'POST']) # GET, POST 2개의 API 동시 생성
def get_post_test(request):
return Response(request)
# App에 추가한 api_params.py
# (참고) App에 파일을 추가해도 되고, views.py에 작성해도 되나, parameter를 모아두기 위해서 api_params.py를 생성하여 관리하였다.
from drf_yasg import openapi
get_test_params = [
openapi.Parameter(
name="param_1",
in_=openapi.IN_QUERY,
description="param_1을 입력",
required=True,
type=openapi.TYPE_STRING,
default="abc"
)
]
# Project의 urls.py
urlpatterns = [
path('/get', views.get_test),
path('/post', views.post_test),
path('/put', views.put_test),
path('/get_post_test', views.get_post_test)
]
3. Swagger 실행화면
- http://127.0.0.1:8000/swagger/
- @api_view(['GET', 'POST'])로 지정한 get_post_test 함수는 아래와 같이 그룹으로 표시된다.
- @swagger_auto_schema의 tags를 사용하면 함수이름이 아닌 새롭게 지정한 이름이 표시된다. tags이름이 같으면 그룹으로 표시된다.
4. manual_parameters를 사용하면 Parameter를 넣을 수 있는 칸이 활성화되고, operation_summary는 path옆에 나타나는 문구,
operation_description는 api를 펼쳤을 때 나타나는 문구를 표시할 수 있다.
responses는 결과코드를 세팅할 수 있다.
5. App의 views.py의 소스를 보면 operation_description은 함수 안에 """ """을 사용하여 표시가 가능하다.
MarkDown 문법으로 operation_description을 작성하면 된다.
6. MarkDown 사용법 : DjangoSwagger에서 MarkDown사용법
'Django' 카테고리의 다른 글
Django Ninja Swagger API Setting (0) | 2023.05.13 |
---|---|
Django Swagger description - MarkDown (0) | 2023.05.12 |
PyCharm Project 생성, Path 경로 수정 (0) | 2023.05.07 |
Django Swagger DRF Setting (1) | 2023.05.06 |
Django App Error(ModuleNotFoundError: No module named) (0) | 2023.05.01 |