我正在生成一个新的 Django 项目,其中包含多个应用程序。这个项目的主要目标是创建一个 REST API。现在,我正在使用 Sphinx,为我的所有项目创建文档
sphinx-quickstart
和
sphinx-apidoc -o doc/packages .
一切都很好,除了 URL。我希望将我的 URL 记录为一个很好的 API,与 Sphinx 文档的其余部分完全集成。
可能吗?
我正在生成一个新的 Django 项目,其中包含多个应用程序。这个项目的主要目标是创建一个 REST API。现在,我正在使用 Sphinx,为我的所有项目创建文档
sphinx-quickstart
和
sphinx-apidoc -o doc/packages .
一切都很好,除了 URL。我希望将我的 URL 记录为一个很好的 API,与 Sphinx 文档的其余部分完全集成。
可能吗?
这是。这不是直接记录 URL,但我以这种方式连接 URL 以查看文档:
制作一个看起来像这样的 Sphinx 扩展:
from django.core.urlresolvers import get_resolver
def setup(app):
app.connect('autodoc-process-docstring', process_django_view)
def process_django_view(app, what, name, obj, options, lines):
if what=='function':
res = get_resolver()
if res.reverse_dict.has_key(obj):
url_struct = res.reverse_dict[obj]
lines[:0] = [
"| URL structure: %s\n" % url_struct[0][0][0]
]
然后,您需要将其添加到您的扩展中conf.py
并加载到 Django 环境中,如下所述:如何为 django 项目构建 sphinx 文档
还有一些其他的东西,比如正则表达式url_struct
和你可以包含的参数。我自己的也搜索对应于不同域的多个 URL 解析器。