Django에서 API 서버를 만들기 위해 Django REST Framework(DRF)를 사용한다.
DRF는 웹 API를 쉽게 구축할 수 있도록 지원하는 강력하고 유연한 툴킷이다.
1. Django REST Framework란?
Django REST Framework(DRF)는 Django에서 API 개발을 위한 가장 널리 사용되는 라이브러리이다.
- 쉽고 강력한 API 설계 가능
- JSON 기반의 직렬화(Serialization) 지원
- 세션 및 토큰 기반 인증(Authentication) 제공
- 권한(Permissions) 및 필터링(Filter) 기능 내장
📌 공식 문서: Django REST Framework
2. 가상환경 활성화 및 패키지 설치
📌 1) 가상환경 활성화
먼저, Django 프로젝트의 가상환경을 활성화합니다.
Mac/Linux (bash/zsh)
source venv/bin/activate
Windows (cmd)
venv\Scripts\activate
Windows (PowerShell)
venv\Scripts\Activate.ps1
가상환경이 정상적으로 활성화되면 (venv) 같은 프롬프트가 나타난다.
예제에서는 (pubd_api)라는 가상환경을 사용하고 있다.
📌 2) Django REST Framework 설치
다음 명령어를 실행하여 djangorestframework를 설치한다.
pip install djangorestframework
설치가 정상적으로 완료되면 아래와 같은 메시지가 출력된다.
Successfully installed djangorestframework-3.15.2
📌 3) Django Filter 라이브러리 설치
필터링 기능을 추가하기 위해 django-filter 패키지도 설치한다.
pip install django-filter
설치가 정상적으로 완료되면 아래와 같은 메시지가 출력된다.
Successfully installed django-filter-24.2
3. Django 설정 (settings.py 수정)
📌 1) INSTALLED_APPS에 ‘rest_framework’ 추가
settings.py 파일에서 INSTALLED_APPS에 'rest_framework'를 추가한다.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework', # Django REST Framework 추가
]
📌 2) REST Framework 설정 추가
settings.py 하단에 REST Framework 관련 설정을 추가한다.
📌 참고 문서:
• Django REST Framework Settings
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': [
'rest_framework.renderers.JSONRenderer',
'rest_framework.renderers.BrowsableAPIRenderer',
],
'DEFAULT_PARSER_CLASSES': [
'rest_framework.parsers.JSONParser',
'rest_framework.parsers.FormParser',
'rest_framework.parsers.MultiPartParser'
],
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.BasicAuthentication'
],
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated',
# 모든 사용자에게 API를 공개하려면 아래 주석을 해제한다.
# 'rest_framework.permissions.AllowAny',
],
}
DEFAULT_PERMISSION_CLASSES 기본값이 IsAuthenticated로 설정되어 있어, 인증된 사용자만 API를 사용할 수 있다.
만약 모든 사용자(비로그인 포함)가 API를 사용할 수 있도록 하려면 'rest_framework.permissions.AllowAny'를 설정한다.
4. URL 설정 (urls.py 수정)
Django의 urls.py 파일을 열어, rest_framework.urls를 추가한다.
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('rest_framework.urls')), # Django REST Framework URL 추가
]
이제 Django REST Framework의 기본 API 페이지를 사용할 수 있다.
브라우저에서 http://localhost:8000/api/로 접속하면 DRF의 기본 제공 로그인 화면을 볼 수 있다.
5. 서버 재시작 및 테스트
설정을 적용하기 위해 Django 서버를 다시 실행한다.
python manage.py runserver
이제 API 서버가 정상적으로 동작하는지 확인해 본다.
📌 API 접속 테스트
- 브라우저에서 http://localhost:8000/api/ 로 이동
- Django REST Framework의 기본 제공 로그인 화면 확인
- 관리자 계정으로 로그인 후 API 기능 확인
6. 마무리
지금까지 Django REST Framework를 설치하고 API 서버를 구성하는 기본 설정을 완료했다.
✅ 정리하면?
✔️ djangorestframework 패키지 설치
✔️ django-filter 패키지 설치
✔️ settings.py 설정 추가
✔️ urls.py에 API 경로 추가
✔️ Django 서버 재시작 후 테스트
📌 다음 글에서는?
다음 글에서는 CORS(Cross-Origin Resource Sharing) 설정을 추가하여,
프론트엔드(Vue.js, React)와 Django 백엔드가 원활하게 통신할 수 있도록 설정해 본다. 🚀
👉 [다음 글] Django CORS 크로스 도메인 오류 해결
'국회도서관 자료검색 서비스' 카테고리의 다른 글
pylint 로 python 가상환경 venv 코드와 vs code 와 연결시키기 #7 (0) | 2024.08.06 |
---|---|
django cors 크로스 도메인 오류 해결 #6 (0) | 2024.08.05 |
공공데이터 포털 에서 원하는 서비스 API 신청하기 #4 (0) | 2024.08.02 |
django cycle, 프로젝트 구조 및 language, timezone 변경하기 #3 (0) | 2024.08.01 |
django app 생성하고 소스에 git 설치하기 #2 (0) | 2024.07.31 |