Currently I'm working on a django project and I have an api_views.py file with the following view function:
@api_view(["GET"])
@extend_schema(
parameters=[
OpenApiParameter(
name="jurisdiction", description="City for the query", required=True, type=str, default="Boston"
),
],
description='More descriptive text',
responses={200: OpenApiTypes.OBJECT}, # Define your response schema
)
def distinct_address_autocomplete(request: Request):
jurisdiction = request.GET.get("jurisdiction", "Boston")
# Get distinct addresses for the city
addresses = get_distinct_addresses(jurisdiction)
# Filter addresses based on user's query
filtered_addresses = addresses # Implement your filtering logic
return Response(filtered_addresses)
I've got it all set up correctly in all the settings.py and urls.py because it shows up in swagger, but incorrectly. The OpenApiParameter doesn't show up at all, it looks like this:
But when I refactor this as a class like so:
class DistinctAddressAutocompleteView(APIView):
@extend_schema(
parameters=[
OpenApiParameter(
name="jurisdiction", description="City for the query", required=True, type=str, default="Boston"
),
],
description='More descriptive text',
responses={200: OpenApiTypes.OBJECT}, # Define your response schema
)
def get(self, request: Request):
jurisdiction = request.GET.get("jurisdiction", "Boston")
# Get distinct addresses for the city
addresses = get_distinct_addresses(jurisdiction)
# Filter addresses based on user's query
filtered_addresses = addresses # Implement your filtering logic
return Response(filtered_addresses)
The parameter shows up!
What am I doing wrong on the function view? As best I can tell, I've set it up correctly, I've checked the DRF-Spec docs and I'm stumped at this point.

