django-rest-swagger的请求和响应模式,用于在DRF中记录API

时间:2018-08-09 21:28:43

标签: python django django-rest-framework swagger django-rest-swagger

我想使用DRF中的swagger生成器工具django-rest-swagger来记录我的API

现在我正在通过继承rest_framework.views.APIView

来编写视图

我不想使用视图集或序列化器来编写视图。

这是视图代码示例

from rest_framework.views import APIView
class SomeView(APIView):
  '''
  get:
    some description
  post:
    some other description
 '''
 def get(self, request, format=None):
    a = self.request.query_params.get('a',None)
    b = self.request.query_params.get('b',None)
    c = self.request.query_params.get('c',None)
    return Response({},status='200')

 def post(self, request, format=None):
    a = self.request.data.get('a',None)
    b = self.request.data.get('b',None)
    c = self.request.data.get('c',None)
    return Response({},status='201')

现在,我可以为每个端点添加描述。 description for each api endpoint in swagger ui

,我想添加如下的请求和响应模式model schema for each endpoint in swagger

我想知道如何在不使用序列化器和视图集的情况下实现这一目标。

2 个答案:

答案 0 :(得分:2)

我认为,在django-rest-swagger的当前版本中,YAML文档字符串(如您的示例所示)已被弃用。因此,我认为您将需要手动定义架构。该文档包含一个如何在视图级别执行此操作的示例:

http://www.django-rest-framework.org/api-guide/schemas/#manualschema

答案 1 :(得分:0)

我知道我不是直接回答您的问题,但是我建议您尝试一个可在各个方向进行定制的出色软件包:drf-yasg。您没有义务使用通用的rest_framework内容或序列化器。

您可以直接跳至Custom schema generation