Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Django
- 14658
- 리액트
- QuerySetAPI
- 싸피셜
- git
- 데코레이터
- pwa적용하기
- PWA
- SSAFYcial
- TypeScript
- Python
- 셀프넘버
- SSAFY
- vitepwa
- sqld
- Javascript
- js
- 플로이드워셜
- db
- unionfind
- 백준
- 알고리즘
- 싸피
- 싸피10기
- SQL
- 머신러닝종류
- react
- queryset
- VITE
Archives
- Today
- Total
Meme's IT
[Django] API 문서화 본문
# OpenAPI Specification(OAS)
RESTful API를 설명하고 시각화하는 표준화된 방법
→ API에 대한 세부사항을 기술할 수 있는 공식 표준
# drf-spectacular 라이브러리
DRF를 위한OAS를 도와주는 라이브러리
https://drf-spectacular.readthedocs.io/en/latest/readme.html#installation 를 통해 설치해준다
$ pip install drf-spectacular
# settings.py
INSTALLED_APPS = [
# 추가
'drf_spectacular',
]
# 추가
REST_FRAMEWORK = {
# YOUR SETTINGS
'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema',
}
# 프로젝트 urls.py
from django.contrib import admin
from django.urls import path, include
# 추가
from drf_spectacular.views import SpectacularAPIView, SpectacularRedocView, SpectacularSwaggerView
urlpatterns = [
path("admin/", admin.site.urls),
path('api/v1/', include('articles.urls')),
# 추가
path('api/schema/', SpectacularAPIView.as_view(), name='schema'),
path('api/schema/swagger-ui/', SpectacularSwaggerView.as_view(url_name='schema'), name='swagger-ui'),
path('api/schema/redoc/', SpectacularRedocView.as_view(url_name='schema'), name='redoc'),
]
위의 url서버 들어가면 확인 가능
# get_object_or_404( )
get으로 가져오지만, 만약 없다면 Http 404를 일으키는 함수
원래는 없으면 서버가 중단되고 500이 뜸
그래서 articles/views.py에서 get함수들을 다 바꿔주자
from django.shortcuts import get_object_or_404
# article = Article.objects.get(pk=article_pk)
article = get_object_or_404(Article, pk = article_pk)
그럼 없는걸 입력하면 404 NotFound로 응답
# get_list_or_404( )
객체 목록이 없다면 Http404를 줌
all을 바꿔주자
from django.shortcuts import get_object_or_404, get_list_or_404
# articles = Article.objects.all()
articles= get_list_or_404(Article)
왜씀?
- 오류가 발생했을 때 클라이언트에게 뭐가 잘못되었는지 알려주기 위해
'BackEnd > Django' 카테고리의 다른 글
[Django] CORS Policy (0) | 2023.11.14 |
---|---|
[Django] API KEY 숨기는 방법 (0) | 2023.10.27 |
[Django] DRF(2) N:1 Relation (0) | 2023.10.19 |
[Django] DRF(1) single model (0) | 2023.10.18 |
[Django] DRF란? (0) | 2023.10.18 |