-
Django REST Framework, PostmanDjango 2024. 9. 1. 07:16
📕 Django REST Framework (DRF)
- Django를 이용해서 API를 구축하는 기능을 제공하는 라이브러리
- Django의 Form, ModelForm과 굉장히 비슷하게 구성 및 작동한다
✅ DRF 설치 및 설정
install
pip install djangorestframework
settings.py
INSTALLED_APPS = [ ... 'rest_framework', ... ]
freeze
pip freeze > requirements.txt
이제 DRF를 사용해서 JSON을 응답하는 API를 설계하고 구현해보자👌
urls
from django.urls import path from . import views app_name = "articles" urlpatterns = [ path("html/", views.article_list_html, name="article_list_html"), path("json-01/", views.json_01, name="json_01"), path("json-02/", views.json_02, name="json_02"), path("json-drf/", views.json_drf, name="json_drf"), ]
articles앱에 serializers.py 파일을 생성해줘야 한다.
serializers.py
from rest_framework import serializers from .models import Article class ArticleSerializer(serializers.ModelSerializer): class Meta: model = Article fields = "__all__"
views
from rest_framework.decorators import api_view from rest_framework.response import Response from .serializers import ArticleSerializer @api_view(["GET"]) def json_drf(request): articles = Article.objects.all() serializer = ArticleSerializer(articles, many=True) return Response(serializer.data)
my_program.py (만들어줘야한다. 앱 안에 말고 바깥에 만들어주면 됨)
my_program.py
import requests url = "http://127.0.0.1:8000/api/v1/articles/json-drf" response = requests.get(url) print(response) print(response.json())
프린트 해보면 데이터가 잘 나온다. 이제 이 데이터를 사용해서 보여주는 건 Client의 몫이다.
서버 실행해서 확인해보면?
우와...😲 너무 예쁜게 나옴..
Postman
API를 제공하는 서버를 개발하고 난 후에는 해당 API를 Call 할 수 있는 도구가 필요하다.
그게 바로 → Postman 📮
가입 및 설치 https://www.postman.com/
🤔 포스트맨은
- 개발자가 API를 디자인, 테스트, 문서화, 공유를 할 수 있도록 도와주는 소프트웨어다.
- API 테스트, 환경 관리, 협업 등을 위한 강력한 기능을 제공하여 보다 효율적으로 API를 개발하고 테스트 할 수 있게 도와준다.
웹에서도 사용할 수 있지만 설치해서 사용하는게 좋음👌
다 설치했으면 프로그램을 실행해보자.
1. Workspaces 클릭 → My Workspace 클릭
2. Create collection 클릭
3. Collection 이름 지정 ('Django APIs')
이렇게 반영된다.
4. Add request 클릭
5. Request 이름 지정 ('Article 목록조회')
이렇게 반영된다.
6. 저장 & 보낼 주소 넣기
오렌지색 점은 저장이 안됐다는 표시다. 저장하고, 아래에 URL을 붙여넣기해서 보낼 주소를 입력해준다.
7. Send 클릭
vs code 터미널에서 확인해보면, 콜이 잘 들어왔고 잘 반영되고,
데이터가 조회된다. 너무 신기😄
쿼리 파라미터에 Key 랑 Value 값도 지정해줄 수 있다.
- 이렇게 하나하나의 API를 작성하고 테스트하면서 개발을 진행하게 된다.
- Workspace는 공유하여 협업이 가능하다. (3명까진 무료, 그 이상은 유료)
'Django' 카테고리의 다른 글
Token Auth with JWT (1) 2024.09.03 Python Django 기초 시험 오답노트 (1) 2024.09.02 JSON Response와 Serialization (1) 2024.09.01 HTTP와 URL구조 (1) 2024.08.29 Django Model Relationship (M:N) (0) 2024.08.27