Django REST framework는 강력한 웹 프레임워크로, RESTful API를 쉽게 개발할 수 있도록 도와줍니다. 이 프레임워크를 사용하면 API 엔드포인트에서 키워드 검색 기능을 쉽게 추가할 수 있습니다.
필터링 및 검색 기능 추가하기
Django REST framework에서 키워드 검색 기능을 추가하는 가장 간단한 방법은 SearchFilter
클래스를 사용하는 것입니다. 이 클래스는 API 뷰에서 쿼리 파라미터로 전달된 검색어로 필터링할 수 있는 기능을 제공합니다.
우선, SearchFilter
클래스를 임포트해야 합니다.
from rest_framework.filters import SearchFilter
다음으로, 검색 기능을 적용할 API 뷰 클래스에 filter_backends
속성을 추가하고 SearchFilter
를 포함시킵니다.
from rest_framework.filters import SearchFilter
class MyAPIView(APIView):
filter_backends = [SearchFilter]
search_fields = ['field1', 'field2', ...]
search_fields
는 검색어로 필터링할 필드를 나타내는 리스트입니다. 검색할 필드를 추가하려면 해당 필드의 이름을 리스트에 추가하면 됩니다.
검색 기능 사용하기
검색 기능을 사용하려면, API 엔드포인트에 GET 요청을 보낼 때 search
쿼리 파라미터에 검색어를 전달하면 됩니다.
예를 들어, /api/endpoint/?search=keyword
와 같은 요청을 보내면 field1
과 field2
에서 keyword
를 포함하는 결과를 반환합니다.
추가적인 설정
기본적으로 SearchFilter
클래스는 기본 검색 수행 방식을 사용합니다. 하지만, 검색 필드에 따라 검색 전략을 변경하고 싶을 경우에는 search_option
을 설정할 수 있습니다.
from rest_framework.filters import SearchFilter
class MyAPIView(APIView):
filter_backends = [SearchFilter]
search_fields = ['field1', 'field2', ...]
search_option = 'regex' # 정규식을 사용한 검색 옵션
위의 예제에서는 search_option
을 regex
로 설정하여 정규식을 사용한 검색 옵션을 사용합니다.
결론
Django REST framework의 SearchFilter
클래스를 사용하면 API 엔드포인트에 키워드 검색 기능을 쉽게 추가할 수 있습니다. 필요한 검색 필드를 지정하고, 쿼리 파라미터로 검색어를 전달하여 검색 결과를 확인할 수 있습니다.