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

drf-autodocs的Python项目详细描述


#django rest framework auto docs
自动api文档呈现器

\Rkdown
*保留空格和换行符
*格式采用良好的语法
*字段:
*请求/响应的不同字段,基于只读/写属性,以及响应序列化程序类是否存在
*选项呈现
*帮助文本呈现(指定y 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="讲师读取更新',
url(r'^university/',大学视图.大学视图处理程序.as_view(),name="大学")
,namespace="大学"),
]
`````


假设您有这样一个视图:
`` python
类bookreaddupdatehandler(retrieveupdateaviview):
序列化程序类bookupdateserializer
queryset=book.objects.all()
````

与输出不同:
`` python
类bookUpdateSerializer(serializers.modelSerializer):
类meta:
字段=('name','author')
模型=book


定义到表示(self,instance):
返回库序列化器(instance.library)
```

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


`response_serializer_class=yourserializer`

字符串,其中:
1)允许格式化
2)`允许标记`
""
serializer_class=bookupdateserializer
response_serializer_class=libraryserializer
queryset=book.objects.all()
```




`` python
from.request\u response\u examples import request\u example,response\u example
from drf\u autodocs.decorators import format\u docstring


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

r
response_serializer_class=libraryserializer
queryset=book.objects.all()
````



`````````````````URL(get)额外参数
请在使用这些参数之前三思,因为它们可能是不需要的。

/>类库shandler(listcreateapiview):
"
闪亮而漂亮的docstring,其中:
1)允许格式化
2)`允许标记`
"
"额外的url参数=(("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
from rest_framework import serializers

has_books=serializers.serializerMethodField(help_text='returns bool')
````

请注意,在序列化程序字段上指定帮助文本会覆盖来自MO的字段del


继承自

`drf\u autodocs.parser.baseapiparser`

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

将导致:

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


/>感谢[django](http://djangoproject.com)、[django rest](http://www.django-rest-framework.org/)他们出色的工作,
和[drf docs](https://github.com/manosim/django-rest-framework-docs)作为灵感来源和部分代码。





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



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

推荐PyPI第三方库


热门话题
java Jsonify使用Jackson来定义嵌套对象   在Swing中禁用java图形调试   java Selenium Webdriver拖放在Jenkins上不起作用   java我对一个显示器的问题有一个非常不切实际的询问   java增强的“for”循环导致ArrayIndexOutOfBoundsException   ArrayAdapter适用于Java中的安卓编程,字符串数组   linux在Ubuntu上通过PulseAudio播放Java音频文件时出错   java在Spring应用程序中加载内部(类路径)和外部属性文件   java使用Maven连接到mySQL   Java应用程序的设计   websocket在电报api java中与dc的连接   java XMLStreamException,因为xml中的(&N)   java从控制台输出到JTextArea   Java导出文本文件   java实现parseInt方法   java为什么servlet容器会同步对特定资源/servlet的多个请求的访问?   循环中的Java“while”变量   用Java编程一个国际象棋游戏,gameOver布尔不起作用   java如何获得真正的JPanel大小?