Django Rest Swagger APIView [英] Django Rest Swagger APIView
问题描述
我制作了一个API,并且想制作大量的文档。我没有为此开发任何序列化。
I made an API and want to make swagger doc. I don't develop any Serializes for that.
Views.py
Views.py
class DeliveryView(APIView):
renderer_classes = (XMLRenderer,)
def get_campaign_vast(self, request, *args):
return response
def get(self, request):
return self.get_campaign_vast(request, data)
def post(self, request):
"""
This text is the description for this API
---
param1 -- A first parameter
param2 -- A second parameter
"""
data = request.data
return self.get_campaign_vast(request, data)
urls.py
urls.py
from django.conf.urls import url,include
from django.contrib import admin
from rest_framework_swagger.views import get_swagger_view
schema_view = get_swagger_view(title='Add Delivery')
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$',schema_view),
url(r'^', include('deliverymanagment.urls')),
]
我想获取Swagger中我没有得到的所有参数。
I want to get all the parameters in Swagger which i am not getting.
我正在使用:
django-rest-swagger == 2.1.1
django-rest-swagger==2.1.1
djangorestframework == 3.5.3
djangorestframework==3.5.3
推荐答案
考虑使用 GenericAPIView
而是生成文档。当端点与模型不相关但可以使用时,使用它有点技巧。
Consider using the GenericAPIView
instead as this will generate the documentation. It is a bit of a hack using this when the endpoint does not relate to a model, but it does work.
例如,以下代码将创建一个端点
As an example, the following code will create an endpoint that only accepts post requests and is documented within swagger using the seralizer.
class SomeThing(GenericAPIView):
serializer_class = MySerializer
def post(self, request, *args, **kwargs):
serializer = MySerializer(data=request.data)
if serializer.is_valid() is False:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
res = do_magic(**serializer.data)
return Response(res)
这篇关于Django Rest Swagger APIView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!