Path parameter는 api url에 지정된 데이터 타입의 변수를 넘겨주고, 해당 url을 처리하는 View에서 이 변수를 받아 활용 가능
from django.urls import path
from product.views import ProductDetailView
urlpatterns = [
path('/product/<int:product_id>', ProductDetailView.as_view()),
]
url에서 int타입의 product_id를 받아서 이를 처리할 ProductDetailView로 넘김
from django.views import View
from .models import Product
class ProductDetailView(View):
def get(self, request, product_id):
......
product = Product.objects.get(id=product_id)
GET Method의 Parameter로 product_id를 받는다.
GET /list?menu=1&sort=-price
위와 같이 http request를 보내면,
{'menu' : 1, 'sort' : '-price'}인 Query Dictionary로 받음
from django.urls import path
from product.views import ProductListView
urlpatterns = [
path('/product', ProductListView.as_view()),
]
from django.views import View
from .models import Category, Product
class ProductListView(View):
def get(self, request):
category_name = request.GET.get('category', None)
......
category = Category.objects.get(name=category_name)
Query Parameter 방식은 주로 filtering
, sorting
, searching
에 사용하는게 적합하며, RESTful 하게 설계한다면 용도에 맞게 사용하면된다.