一、利用coreapi库
使用方法:
1、安装coreapi
pip install coreapi
2、在路由配置文档链接
from rest_framework.documentation import include_docs_urls urlpatterns = [ ... path('docs/', include_docs_urls(title='站点页面标题')) ]
3、视图类:自动接口文档能生成的是继承自APIView及其子类的视图。
-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: 修改图书的阅读量 """
注意事项:
1、遇到报错
REST_FRAMEWORK = { 'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema', # 新版drf schema_class默认用的是rest_framework.schemas.openapi.AutoSchema }
2、视图集ViewSet中的retrieve名称,在接口文档网站中叫做read()
3、参数的Description需要在模型类或序列化器类的字段中以help_text选项定义
class Student(models.Model): ... age = models.IntegerField(default=0, verbose_name='年龄', help_text='年龄') ... class StudentSerializer(serializers.ModelSerializer): class Meta: model = Student fields = "__all__" extra_kwargs = { 'age': { 'required': True, 'help_text': '年龄' } }
二、利用swagger库
使用方法:
1、安装django-rest-swagger
pip install django-rest-swagger
2、在项目配置文件settings中注册django-rest-swagger应用
INSTALLED_APPS = [ 'django.contrib.admin', .... 'rest_framework_swagger', ]
3、视图类,跟coreapi库得操作一样,对方法进行注释
4、路由配置:
''' swagger使用方法: 1、导入辅助函数get_schema_view 2、从swagger导入两个类SwaggerUIRenderer,OpenAPIRenderer 3、利用辅助函数导入两个类 ''' from rest_framework.schemas import get_schema_view from rest_framework_swagger.renderers import SwaggerUIRenderer,OpenAPIRenderer schema_view=get_schema_view(title='API接口文档',renderer_classes=[SwaggerUIRenderer,OpenAPIRenderer]) urlpatterns = [ url(r'^admin/', admin.site.urls), url('swagger/',schema_view) ]