3

到目前为止,我知道django-rest-swagger从 v0.1.10 开始支持 Markdown 语法中的文档字符串。但是当我尝试查看文档时,它显示为纯文本,而不是解析并将其转换为 HTML 代码。

在此处输入图像描述

我在用着:

Django==1.5
Markdown==2.3.1
djangorestframework==2.3.10
django-rest-swagger==0.1.11

SWAGGER_SETTINGS = {
    "exclude_namespaces": [], # List URL namespaces to ignore
    "api_version": '0.1',  # Specify your API's version
    "api_path": "",  # Specify the path to your API not a root level
    "enabled_methods": [  # Specify which methods to enable in Swagger UI
        'get',
        'post',
        'put',
        'patch',
        'delete'
    ],
    "api_key": '', # An API key
    "is_authenticated": True,  # Set to True to enforce user authentication,
    "is_superuser": False,  # Set to True to enforce admin only access
}

API示例代码基于函数的视图:

@api_view(['POST'])
def dummy(request):
    '''
    Lorem ipsum `dolor` sit amet, consectetur adipiscing elit. Etiam sodales lacus at _nulla_ fringilla fringilla. 

    ### Consectetur adipiscing:

       * __dummy_var__: Nunc ut erat justo. Duis turpis augue, posuere a ornare sed,
       * another: Vestibulum suscipit congue neque sed faucibus.
       * `code`: Cras sit amet ullamcorper ipsum.
    '''
    pass

当直接浏览 API 时,描述被正确翻译/呈现。

在此处输入图像描述

我错过了什么吗?

4

2 回答 2

2

从 v0.2.0 版本开始,在 django-rest-swagger 中可以使用 markdown!

只需要显式安装 markdown 包(它不会自动安装):

pip install markdown
于 2014-11-03T21:46:41.280 回答
1

我不认为你缺少任何东西。Markdown 仅在 DRF Browsable API 视图中使用。Swagger 不使用 Markdown,而是 DRF 使用它来呈现描述。

Swagger 只是使用 ajax 将描述和注释作为字符串传递。然后它将它们都呈现为 html,您可以通过在 docs 字符串中包含 html 标记来检查它。所以它根本没有使用 Markdown 渲染器。

DRF 使用 Markdown 来显示描述,这就是为什么它在 Browsable API 中有效,但在 api-docs 中无效。

于 2014-01-13T16:01:11.427 回答