可扩展的auto-django rest框架api生成器

mindbogglr-drf-autodocs的Python项目详细描述


#django rest framework自动文档[最新的pypi版本](https://badge.fury.io/py/mindbogglr-drf_autodocs.svg)(https://pypi.python.org/pypi/mindbogglr-drf_autodocs)


fork from:[drf_autodocs](https://github.com/imakedonsky/drf autodocs/tree/06c2d1d5a9cd23e698310dbce6100463bd8c3f46)


当字体的url指向css中不存在的文件时,mixin。



n可选视图
*树状结构
*文档字符串:
*标记
*保留空格和换行符
*使用良好语法格式化
*字段:
*根据只读/写属性以及是否显示响应序列化程序类,请求/响应的不同字段或不
*选项呈现
*帮助文本呈现(指定SerializerMethodField输出等)
*终结点属性:
*筛选器后端
*身份验证类
*权限类
*额外的URL参数(获取参数)


*视图集
*在浏览器中尝试的可能性



[整体结构](http://joxi.ru/52abgni4k3oya0.jpg)


\[单节点](http://joxi.ru/e2ppywh94vdv2y.jpg)


\[选项](http://joxi.ru/d2pdavspb1m423.jpg)


\[嵌套项](http://joxi.ru/vawokrt1bky4aw.jpg)


\docstring格式:
``python
@format\u docstring(请求示例,响应示例=响应示例)
class bookreaddupdatehandler(retrieveupdateaview):
"
wow,这个神奇的装饰器允许我们:
1)保持干净&short docstring
2)在其中插入其他数据,如请求/响应示例


请求:{}
响应:{响应示例}
"
````

"![帮助文本](http://joxi.ru/vrwzkwso4yekax.jpg)



rlpatterns=[

url(r'^',include('drf_autodocs.url s'),
]




这已经足够支持像招摇过市的文档,

localhost:8000/docs/`

/>#用法

要使您的端点按某些
类别分组,您必须将您的url包含在其他url中。通常有两种实现方法:

示例1:

``python
university urlpatterns=[
url(r'^讲师/',university'^views.讲师handler.as'`view(),name='讲师'),
url(r'^讲师/(?p<;pk>;\d+/$",大学视图。讲师更新处理程序。as_view(),name="讲师读取更新",
url(r'^university/",大学视图。universitieshandler.as_view(),name="university",
]

urlpatterns=[
url(r'^library/",include(library\urlpatterns,namespace="llibrary'),
url(r'^university/',include(university urlpatterns,namespace="university'),
]
``````

>示例2:
``python
urlpatterns=[
url(r'^library/',include(library urlpatterns,namespace="library'),
url(r'^university/',include([
url(r"^讲师/",大学视图。讲师助手。as"^view(),name="讲师"),
url(r"^讲师/(?p<;pk>;\d+/$',大学视图。讲师更新处理程序。as_view(),name='讲师读取更新e'),
url(r'^universities/',university戡views.universitieshandler.as戡view(),name='universities')
,namespace='university'),
]
``````


apiview):
序列化程序\u class=bookUpdateSerializer
queryset=book.objects.all()
````

>并说此序列化程序的输入与输出不同:
```python
类bookUpdateSerializer(序列化程序.modelSerializer):
类元:
字段=('name','author')
model=book

def to_表示(self,instance):
return library serializer(instance.library)
````

>现在要知道返回格式是什么,必须提出请求。
这个包通过:

`response_serializer_class=yourseria来简化它。lizer`

现在您的视图如下:
``python
class bookreaddupdatehandler(retrieveupdateaviview):
"
闪亮漂亮的docstring,其中:
1)允许格式化
2)`allows markdown`
""
serializer\u class=bookrupdateserializer
response_serializer_class=libraryserializer
queryset=book.objects.all()
````



``python
from.request_response_examples导入请求示例,response_example
from drf_autodocs.decorators导入格式文档tring


@format\u docstring(request\u example,response\u example=response\u example)
类bookreaddupdatehandler(retrieveupdateaviview):
"
哇,这个神奇的装饰器允许我们:
1)保持干净,短docstring
2)在其中插入其他数据,像请求/响应示例

请求:{}
响应:{响应示例}
"
序列化程序类=bookUpdateSerializer
响应序列化程序类=库序列化程序
querySet=book.objects.all()
````


/>在使用这些参数之前,请三思而后行,因为它们可能是不需要的。

lows markdown`
""
extra_url_params=("show_all","bool","if true返回所有实例,只有5个其他实例)",
("some_extra_param","integer","something more to be include there"))
````

结果:

![额外的url_参数](http://joxi.ru/e2ppywh9gmzj2y.jpg)



izer_class
*filter_backends
*authentication_classes
*permission_classes
*doc_format_args
*doc_format_kwargs

现在看起来应该是:
`` python
来自drf_autodocs。decorators import document_func_view

format_args=['"此字符串已插入",]

@document_func_view(serializer_class=bookserizer,
response_serializer_class=libraryserializer,
doc_format_args=format_args)
@api_view(['get','post','delete'])
def hello_world(request):
"
"适用于"functional"`观点也是!
是啊,那玩意真是太棒了!
并允许格式化{}
"
返回响应('Hello_World Response')
````

自动转到序列化程序字段。

示例:

`` python
来自restramework导入序列化程序

具有"books=serializers.serializerMethodField(help_text="returns bool")
````

请注意,在序列化程序字段上指定"help_text"将覆盖模型中的字段


自定义项
若要更改应用程序外观,请覆盖模板和/或静态文件。

root模板是:
`templates/drf_autodocs/index.html`



名称或url名称,用""替换''''''-',并大写输出。


默认行为是使用url名称:

`url(r'^books/(?p<;pk>;\d+/$',library_views.bookreaddupdatehandler.as_view(),name='book_read_update'),`

将导致:

![网址名称](http://joxi.ru/q2k1wdh4yxngrj.jpg)


Anks to[django](http://djangoproject.com)、[django rest](http://www.django-rest-framework.org/)for their awesome work,
and[drf docs](https://github.com/manosim/django-rest-framework-docs)for source of inspiration and some parts of code.



夹竹桃[Buddhasoft](http://i63.tinypic.com/2h87nzm.png)(http://buddhasoft.net/)



欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java OnClick用于ListView中的特定项   java如何多次循环相同的TestNG测试。包括课前和课后   java如何在Codenameone中设置BrowserComponent浏览器窗口大小   java Socketchannel始终为空   java以编程方式向JavaFX WebEngine历史添加新条目   java Hibernate+Spring与Oracle一起使用分层查询(从+连接方式开始)   Java中的安卓 getView和Beacon(Estimote)问题   计时器如何在java中设置暂停选项   java为什么输入1000000000000的输出不正确?   java如何在程序执行期间更改log4j2中的日志记录级别   java阻止代码引发XML异常   未找到媒体类型为application/json的java JAX RS MessageBodyWriter   java如何将BuffereImage中的特定颜色(0xFF00FF)设置为透明?   java如何列出web元素,如果网页中没有特定链接的id,如何单击网页中的特定链接?   在Java中读取txt文件时获取EOFEException   java如何避免为每个视图添加inject方法?   JavaSpringController:Facebook上类似文章的永久链接   java在尝试执行脚本时遇到错误“net.serentiybdd.core.exceptions.serentitymanagedexception:No session ID”