django-rest-swagger如何记录API

时间:2016-08-01 05:45:00

标签: django-rest-framework swagger

我现在正在将DRS用于我的简单django REST API,尽管它并不完美,但到目前为止它一直是一个很棒的库。但是有一些问题

我正在使用

django-rest-swagger==2.0.3

我的api-doc看起来像这样

enter image description here

问题#1:我找不到添加文档的方法,我尝试将YAML放在基于类的视图集操作方法下,而不是工作。直接在ViewSet类下放置docstring,没有运气。然后我看到在最新的DRS版本中,2.0更改提到YAML docstring已被弃用。

那么我该如何提供类似的东西 1.端点简短描述 2.参数描述和可能的样本格式

问题#2:如何指定哪个参数是必需的。

例如,我在UserViewSet中有一个动作

    @detail_route(methods=['post'], url_path='set-password')
@AssertInRequestBody(['password'])
def set_password(self, request, pk):
    """
    set user password
    """
    user = User.objects.get(pk=pk)
    json_data = get_json_data(request)
    user.set_password(json_data['password'])
    user.save()
    return DefaultResponse(_('Successfully set password for user %s'
                             % user.email), status.HTTP_200_OK)

我希望它是一个POST操作,请求体中会有一个密码。我无法找到记录这种情况的方法。

这适用于其他操作,我想现在DRS只是查看模型定义和序列化器定义来确定哪个参数是强制性的,这对我来说并不合适。

我觉得DRS应该提供某种装饰器,以便我们可以轻松地将相应的文档添加到动作方法中。

但也许我错了,如果DRS确实提供了这些功能,请提供帮助。

谢谢,

2 个答案:

答案 0 :(得分:1)

可能是这么晚了,但只是为了一些帮助,这个文档解释了django rest swagger 2一步一步的整合: Django Rest Swagger 2 comprehensive documentation

答案 1 :(得分:0)

由于您正在发帖,要添加终点简短说明,这就是我要做的事情

def set_password(self, request, pk):
    """
    create:
        set user password
    """
    ...

或者在UserViewSet类中:

class UserViewSet(...)
    """
    set_password:
        set user password
    """

这可能会回答问题1