使用Django模板即时渲染API蓝图
项目描述
django-apiblueprint-view
使用Django模板即时渲染API蓝图
安装
-
pip install django-apiblueprint-view
-
将项目添加到django设置中的
INSTALLED_APPS
INSTALLED_APPS = [
...
'apiblueprint_view',
]
用法
from apiblueprint_view.views import ApiBlueprintView
urlpatterns = [
url(r'^docs/$', ApiBlueprintView.as_view(blueprint='/path/to/blueprint.apibp')),
]
样式
自定义HTML模板
定义一个自定义基本模板。它必须包含标签
{% include 'api_docs/docs_parent.html' %}
将其作为参数传递给ApiBlueprintView.as_view()
。
from apiblueprint_view.views import ApiBlueprintView
urlpatterns = [
url(r'^docs/$', ApiBlueprintView.as_view(
blueprint='/path/to/blueprint.apibp',
template_name='my_base_template.html'
)),
]
自定义CSS
ApiBlueprintView.as_view()
可以接受一个描述要附加到渲染HTML标签的自定义CSS类的styles
字典。例如
from apiblueprint_view.views import ApiBlueprintView
urlpatterns = [
url(r'^docs/$', ApiBlueprintView.as_view(
blueprint='/path/to/blueprint.apibp',
template_name='my_base_template.html',
styles={
'action': {'class': 'foo bar'},
'method': {'class': 'baz'}
}
)),
]
以下键是有效的。所有键都是可选的
'action'
:API操作的容器<div>
'action_transaction'
:HTTP事务(请求和响应)的容器<div>
'action_request'
:HTTP请求的容器<div>
'action_response'
:HTTP响应的容器<div>
'action_schema'
:HTTP请求或响应模式的容器<div>
'action_headers'
:HTTP请求或响应头部的容器<div>
'action_body'
:HTTP请求或响应体的容器<div>
'action_example'
:API操作示例URL的容器<div>
'description'
:描述动作、资源、请求、响应等的文本的容器<div>
'parameters'
:参数列表的容器<div>
'method'
:包含 HTTP 方法的通用<span>
'method_CONNECT'
:包含文本CONNECT
的<span>
'method_DELETE'
:包含文本DELETE
的<span>
'method_GET'
:包含文本GET
的<span>
'method_HEAD'
:包含文本HEAD
的<span>
'method_OPTIONS'
:包含文本OPTIONS
的<span>
'method_PATCH'
:包含文本PATCH
的<span>
'method_POST'
:包含文本POST
的<span>
'method_PUT'
:包含文本PUT
的<span>
'method_TRACE'
:包含文本TRACE
的<span>
'resource'
:API 资源的容器<div>
'resource_group'
:API 资源组的容器<div>
可以使用 Highlight.js 添加语法高亮显示
包含文件
您可以通过使用指向包含文件相对路径的 include 指令,在蓝图文件中包含其他文件。包含的文件可以包含其他文件,因此请小心处理循环引用。
<!-- include(filename.md) -->
此语法不是 API Blueprint 规范的一部分,但也被一些其他工具支持,例如:aglio。
如果您的应用程序渲染用户提供的文本,include 指令可能会引入远程文件包含或目录遍历漏洞。有一些设置可以帮助缓解此问题。在 django 设置中将 APIBP_PROCESS_INCLUDES = False
设置为完全忽略 include 指令(默认为 True
)。还有允许包含的文件类型白名单。默认白名单是 ['.md', '.apibp', '.json']
,但可以通过在 django 设置中将 APIBP_INCLUDE_WHITELIST
设置为允许扩展名的列表来覆盖它。
项目详情
关闭
哈希值 for django_apiblueprint_view-2.5.1-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7b4f553965c1d06e77c90ee8eac77249f6a2f49f568f5c0336d21e106d33c401 |
|
MD5 | 6431f21d25fc37bdcdcf1cdd63d54c18 |
|
BLAKE2b-256 | ea1fd017da315ea1a61d0ad670f68944fcf159d4b88d8431c289f3e6854d7a4d |
关闭
哈希值 for django_apiblueprint_view-2.5.1-py3-none-macosx_11_0_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 409d465884be7fd42d948c1aa7bf13177f9a11faf7086e7683287d9d1e5b7d26 |
|
MD5 | 1ae476b3d968f8cf26f9661d88731580 |
|
BLAKE2b-256 | badd07a17ab6e2de1e50811e1f8caf81d0e48664e840160fcbddc13aa8ee80f9 |