首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第 16 篇:别再手动管理接口文档了

可以看到内容大体是正确,接口基本都罗列了出来,但是仔细检查各个接口内容,就会发现一些问题: GET /api-version/test/ 这个接口是我们用来测试希望它显示文档里。...drf-yasg 提供了一个 swagger_auto_schema 装饰器来装饰视图,只需要为装饰器设置 auto_shema=None 就可以让 drf-yasg 忽略掉被装饰视图,具体用法如下:...因为 PostSearchView 继承自 HaystackViewSet,代码中并没有显示地定义 retrieve 这个方法,而是从父类继承而来,所以我们借助 django 提供辅助函数 method_decorator...会从这些属性去解析接口支持参数,例如视图集设置了 filterset_class = PostFilter 和 pagination_class=PageNumberPagination(虽然不在视图集中显示定义...,但在全局进行了配置),解析 list_archive_dates 参数时,drf-yasg 错误地解析到了从视图集继承来 PostFilter 和 PageNumberPagination,所以就把这两个类中定义参数也包含进文档了

1.8K20
您找到你想要的搜索结果了吗?
是的
没有找到

drf接口文档生成与管理

上面列出工具或多或少都需要花费一定时间去手动维护,drf后端项目中可以利用其自带Core API、第三方库Swagger以及更好drf-yasg自动生成接口文档 2、Core API生成接口文档...2.5 补充说明 1、上面访问到接口文档,可以按照右边指引通过安装coreapi-cli,通过命令行操作访问接口文档 2、对于视图集ViewSet中retrieve名称,接口文档中叫做read...所有操作均已折叠 list 列出所有操作 full 扩展所有操作 'DOC_EXPANSION': None, # 是否显示请求标头 'SHOW_REQUEST_HEADERS...': True, # 切换使用Django Auth作为身份验证机制 将其设置为True将会在Swagger UI显示一个登录/注销按钮,并将csrf_tokens发布到API 'USE_SESSION_AUTH...: 2.2, 3.0, 3.1 Python: 3.6, 3.7, 3.8, 3.9 4.2 安装drf-yasg库 操作下面的步骤前请将第3节swagger相关内容全部注释或还原 pip3 install

4.6K10

Django Swagger文档库drf-spectacular

使用DRF时候,通常文档有:默认文档RestFrameWork、CoreAPI、SwaggerSwagger是最流行API文档库,绝大多数服务端开发中都有用到,之前我们使用了CoreAPI来生成文档...中排除操作 operation:手动覆盖自动发现将生成内容。.../authentication.py文件中可以看到,这个作用就是文档中显示什么样认证页面 对于认证页面的显示,主要是根据settings.py配置中 REST_FRAMEWORK = {...可以识别 DEFAULT_AUTHENTICATION_CLASSES 下认证方式,就会在文档登录页面上显示对应认证方式,这里我们有自定义认证方式,如果需要显示,要做一下适配: from drf_spectacular.extensions...默认生成swagger界面上,我们看到情况与理解一样,对于JSON参数请求是没有问题,我们只需要输入必填字段就可以了,但是如果是form-data参数,虽然显示依然包含read_only

1.7K20

第 9 篇:实现分类、标签、归档日期接口

action 装饰器通常用于视图集中添加额外接口实现。例如这里我们已有了 PostViewSet 视图集,标准 list 实现了获取文章资源列表逻辑。...现在,侧边栏所需要数据接口就开发完成了,接下来实现返回某一分类、标签或者归档日期下文章列表接口。 使用视图集简化代码 我们开发了获取全部文章接口。...事实,分类、标签或者归档日期文章列表 API,本质还是返回一个文章列表资源,只不过比首页 API 返回文章列表资源多了个“过滤”,只过滤出了指定部分文章而已。...Serializer 非常类似。...由于这两个字段 Post 中没有定义,Post 记录时间字段为 created_time,因此我们需要显示地定义查询规则,定义规则是: 查询参数名 = 查询参数值类型(查询模型字段,查询表达式

2.6K30

DRF自动生成OpenAPI文档

DRF自动生成OpenAPI文档 API schemas是非常有用,可以帮助我们生成接口文档以及可与API交互动态客户端。...在这里我们使用drf-spectacular这个第三方库来自动生成OpenAPI schemas. drf-spectacular 安装,配置步骤可以参考drf-spectacular文档,下面简单给出步骤...安装和配置 使用 经过上面的基本配置,我们现在访问api/schema/swagger-ui/来查看swagger-ui风格文档,如下所示: 当你点击schema时候,就会显示响应字段描述...我们需要手动修改,如下所示: 手动代码中加入以下内容: class BookView(GenericAPIView): """删改查视图""" queryset = BookInfo.objects.all...视图集中使用 对于视图集而言,可以使用@extend_schema_view装饰器来直接装饰类。

2.7K20

DRF终极封装ViewSet和Router附教程PDF源码

DRF官方教程学习过程中,一个很明显感受是框架在不断地进行封装,我们自己写框架/工具/脚本/平台也可以模仿模仿,先完成底层代码,再做多层封装,让使用者很容易就上手操作。...ViewSets 先看看之前在给User模型创建Endpoint时,我们新增2个视图: class UserList(generics.ListAPIView): queryset = User.objects.all...可以把它们合成一个视图。 set是集合意思,ViewSets就是视图集合。...,默认为GET请求,如果想改为POST请求,可以添加参数methods,它源码如下: def action(methods=None, detail=None, url_path=None, url_name...Routers 使用ViewSet一大好处是可以自动配置路由,DRF提供了rest_framework.routers: ?

82820

Python3+ Django3:自动生成Swagger接口文档

接下来,本篇文章,介绍就是基于Python3+Django3下,如何接入Swagger框架,并且实现Swagger接口文档自动生成。 2....Swagger优势: 1)Swagger可生成一个具有互动性API控制台,开发者可快速学习和尝试API 2)Swagger支持不同客户端SDK代码,用于不同平台上(Java、Python、...)实现...Django项目配置 1、开始之前,我们先创建一个项目操作目录和隔离环境,具体操作如下: # 创建项目目录 mkdir django_swagger cd django_swagger # 创建隔离开发环境...django 3.0中已经不支持该库了,取而代之是全新第三方drf-yasg库。...4、Swagger除了可以即时生成接口文档以外,还可以用于在线做一些接口功能测试,如下所示。 ? ? 5、Swagger中还可以查看到model定义各字段类型及参数说明。 ?

14.8K32

Django Rest Swagger生成api文档

关于swagger Swagger能成为最受欢迎REST APIs文档生成工具之一,有以下几个原因: Swagger 可以生成一个具有互动性API控制台,开发者可以用来快速学习和尝试API。...Swagger 可以生成客户端SDK代码用于各种不同平台上实现。 Swagger 文件可以许多不同平台上从代码注释中自动生成。 Swagger 有一个强大社区,里面有许多强悍贡献者。...下面就实战django rest swaggerdrf生成api接口文档 环境 Python3.6 Django1.11 django-rest-swagger djangorestframework...serializers.HyperlinkedModelSerializer): class Meta: model =Group fields = "__all__" 配置api/views.py # 视图...登录 url(r'^api-auth/',include('rest_framework.urls',namespace='rest_framework')) ] 最终效果 drf自带接口UI

3K10

路由是如何映射

目录 DRF 路由组件 路由是如何映射?...继承ModelViewSet,路由写法 自己配路由映射 自动生成路由 action装饰器 继承APIView+ViewSetMixin使用装饰器 路由router形成URL方式 DRF 路由组件...路由配置上篇我们提到了一点自动配置,对于继承了视图集ViewSet就可以自动生成路由,当然了也可以选择手动版自己配,可以使用action装饰器来指定方法等操作,屁话不多说如下: REST framework...带id url_path:地址,地址如果写,默认已方法名为地址 url_name:起别名 继承APIView+ViewSetMixin使用装饰器 from rest_framework.decorators...DefaultRouter会多附带一个默认API根视图,返回一个包含所有列表视图超链接响应数据 总结 路由写法有三种: 手动配置:path('books/', views.BookDetailView.as_view

69010

POSTMAN自动生成接口文档_swagger自动生成接口文档

它可以自动帮我们提取接口中信息,从而形成接口文档,而且内容十分详细,再也不用为写接口文档而心烦了 这个库主要实现了3个目标 从DRF中提取更多schema信息 提供灵活性,使schema现实世界中可用...(3.10, 3.11, 3.12) 安装 使用pip命令安装 pip install drf-spectacular 然后settings.pyINSTALLED_APPS安装drf-spectacular...swagger接口文档,但是我们点开接口会发现没有任何内容信息 所以我们还需要在view视图中,使用装饰器@extend_schema来制定接口文档中接口信息 我们先来看下装饰器extend_schema...中排除操作 operation:手动覆盖自动发现将生成内容。...extensions:规范扩展 最后我们登录视图post方法中添加@extend_schema装饰器,传入上面你所需要字段,就可以了 @extend_schema( summary

2.2K20

DRF框架中英文单词

DRF框架中英文单词 1. prefix/'prifɪks/前缀,我们路由配置时候经常看见这个单词。flask中,我们可以设置url时候为了区别视图类似功能url全部加一个前缀。...Errorhandling错误处理,Restful设计风格中,如果状态码是4xx,我们就应该返回错误信息,通常来说是下面这个样子,但是唯一: {error:""} 7...PATCH这个操作现在基本是不用,但是我们了解一下,path只是将更改内容发送,put将更改后所有的内容都发送过去。这个在网上说法不一,先按这种理解,毕竟没人用这种操作方式了,而是用put。...20. model/'mɑdl/模型,我们很多时候都用到了这个单词,DRF框架我们在下面的情况中用到了这个单词。指明该序列化器处理数据字段从模型类BookInfo参考生成。...27. params/ˌpærəˈm/参数,这个大家陌生,经常看见。 28. generic/dʒə'nɛrɪk/类,是形容词。视图两个基类中GenericAPIView就有这个单词。

1.7K30

Django REST Framework-什么是视图(一)

Django REST Framework中,视图是处理HTTP请求和响应核心组件。视图接收HTTP请求,然后根据请求方法(GET,POST,PUT等)执行相应操作,并返回HTTP响应。...DRF视图可以是函数视图或基于类视图。函数视图类似于Django中函数视图,它接收一个request对象并返回一个响应。...基于类视图DRF主要视图类型,它继承自DRF提供基类,并提供了一些常见功能,例如身份验证,权限控制和序列化器使用。...perform_create()方法中,我们保存了反序列化数据。DRF中,还有许多其他视图类型可用。...以下是一些常用视图类型:ListAPIView:提供一个只读列表视图显示一个查询集序列化结果。RetrieveAPIView:提供一个只读详情视图显示一个对象序列化结果。

40731
领券