如何在Django Swagger文档中使用查询参数? [英] How to use query parameters in Django Swagger Documentation?
问题描述
假设我们有这样的URL- localhost:8000 / object?name = STH
。任何人都知道如何显示名称
的对象
等于 STH
使用Django Swagger文档吗?
Let's assume that we have for example such URL - localhost:8000/object?name=STH
. Anyone have an idea how can I display object
with name
equals STH
using Django Swagger Documentation?
class ObjectList(GenericAPIView):
serializer_class = ObjectSerializer
def get(self, request):
try:
t = request.GET['sth']
object = Object.objects.filter(sth=sth)
except:
object = Object.objects.all()
serializer = ObjectSerializer(object, many=True)
return Response(serializer.data)
我正在尝试这种方式,但是在我的Swagger中看不到:
I am trying in this way but it's not visible in my Swagger:
URL: url(r'^ object-data $',views.ObjectList.as_view()),
class ObjectList(GenericAPIView):
serializer_class = ObjectSerializer
filter_backends = (DjangoFilterBackend, )
filter_fields = ('sth', )
我的Swagger外观如下图所示。我想拥有 sth
而不是页面
。我不知道为什么它在那里。
At this moment my Swagger looks as shown below. I would like to have sth
instead of pages
. I have no idea why it is there.
推荐答案
我正在使用 djang-filter 软件包,它与rest框架很好地集成在一起,并且还支持swagger文档,您会在sfagger中为该端点自动生成过滤列。
I am using djang-filter package that integrates nicely with rest framework and it also has support for swagger docs, you get auto-generated filtering columns for that endpoint in swagger.
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.generics import ListAPIView
class ObjectList(ListAPIView):
serializer_class = ObjectSerializer
queryset = Object.objects.all()
filter_backends = (DjangoFilterBackend, )
filter_fields = ('sth', )
这篇关于如何在Django Swagger文档中使用查询参数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!