Django_rest-framework自动生成接口文档

安装依赖包

pip install coreapi

配置settings

REST_FRAMEWORK = {    
	'DEFAULT_SCHEMA_CLASS': 
'rest_framework.schemas.coreapi.AutoSchema' 
}

设置路由

from rest_framework.documentation import include_docs_urls
urlpatterns = [    
	...    
	url(r'^docs/', include_docs_urls(title='My API title')) 
]

⽂档描述说明的定义位置

1> 单⼀⽅法的视图,可直接使⽤类视图的⽂档字符串,如

class BookListView(generics.ListAPIView):    
"""    返回所有图书信息.    """

2> 包含多个⽅法的视图,在类视图的⽂档字符串中,分开⽅法定义,如

class BookListCreateView(generics.ListCreateAPIView):    
	"""    
	get:    
	返回所有图书信息.
   	post:    
   	新建图书.    
   	"""

3> 对于视图集ViewSet,仍在类视图的⽂档字符串中分开定义,但是应使⽤action
名称区分,如

class BookInfoViewSet(mixins.ListModelMixin, mixins.RetrieveModelMixin, GenericViewSet):    
	"""    
	list:    
	返回图书列表数据
    retrieve:
    返回图书详情数据
    latest:
    返回最新的图书数据
    read:
    修改图书的阅读量    
    """ 

访问接⼝⽂档⽹⻚

浏览器访问127.0.0.1: 8000 / docs /,即可看到⾃动⽣成的接⼝⽂档。

两点说明:
1> 视图集ViewSet中的retrieve名称,在接⼝⽂档⽹站中叫做read

class BookInfo(models.Model):    
	...    
	bread = models.IntegerField(default=0, 			verbose_name='阅读量', 
help_text='阅读量')    
	...

2> 参数的Description需要在模型类或序列化器类的字段中以help_text选项定义,如:

class BookReadSerializer(serializers.ModelSerializer):    
	class Meta:        
		model = BookInfo        
		fields = ('bread', )        	
		extra_kwargs = {            
			'bread': {                
				'required': True,                
				'help_text': '阅读量'            			
				}        
		}

你可能感兴趣的:(Django)