# 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 숨기는 방법 (1) | 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 |