可扩展的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/)
自动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/)