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

如何使用drf_yasg - Django对swagger API端点(基于函数的视图)进行分组

drf_yasg是一个用于Django框架的插件,它可以帮助我们对基于函数的视图使用Swagger进行API端点的分组。

要使用drf_yasg对Swagger API端点进行分组,可以按照以下步骤进行操作:

  1. 首先,确保已经安装了drf_yasg插件。可以通过在命令行中运行以下命令来安装:
代码语言:txt
复制
pip install drf_yasg
  1. 在Django的settings.py文件中进行配置。找到INSTALLED_APPS配置项,并在其中添加以下内容:
代码语言:txt
复制
INSTALLED_APPS = [
    ...
    'drf_yasg',
    ...
]
  1. 在项目的urls.py文件中进行配置。找到urlpatterns配置项,并在其中添加以下内容:
代码语言:txt
复制
from django.conf.urls import url
from django.urls import include
from rest_framework import permissions
from drf_yasg.views import get_schema_view
from drf_yasg import openapi

schema_view = get_schema_view(
    openapi.Info(
        title="API文档",
        default_version='v1',
        description="API接口文档",
        terms_of_service="https://www.example.com/policies/terms/",
        contact=openapi.Contact(email="contact@example.com"),
        license=openapi.License(name="BSD License"),
    ),
    public=True,
    permission_classes=(permissions.AllowAny,),
)

urlpatterns = [
    ...
    url(r'^swagger(?P<format>\.json|\.yaml)$', schema_view.without_ui(cache_timeout=0), name='schema-json'),
    url(r'^swagger/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
    url(r'^redoc/$', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
    ...
]

上述配置中,我们使用了get_schema_view函数创建了一个Swagger的Schema视图。可以根据自己的需求修改标题、描述等信息。

  1. 在需要进行分组的API视图函数上,使用drf_yasg提供的装饰器@swagger_auto_schema来添加分组信息。例如:
代码语言:txt
复制
from drf_yasg import openapi
from drf_yasg.utils import swagger_auto_schema
from rest_framework.decorators import api_view
from rest_framework.response import Response

@swagger_auto_schema(tags=['用户管理'])
@api_view(['GET'])
def user_list(request):
    """
    用户列表
    """
    # 处理用户列表逻辑
    return Response(...)

@swagger_auto_schema(tags=['用户管理'])
@api_view(['POST'])
def create_user(request):
    """
    创建用户
    """
    # 处理创建用户逻辑
    return Response(...)

在上述代码中,我们通过使用@swagger_auto_schema(tags=['用户管理'])装饰器,将user_listcreate_user这两个API视图函数分组到了名为"用户管理"的组中。

现在,启动Django项目并访问Swagger UI页面(一般是http://localhost:8000/swagger/),就能看到API端点已经按照我们定义的分组进行了展示。

总结一下,使用drf_yasg对基于函数的视图进行Swagger API端点的分组的步骤包括:安装插件、在settings.py进行配置、在urls.py进行配置、使用@swagger_auto_schema装饰器添加分组信息。通过这些步骤,我们可以更好地组织和展示API端点,提高API文档的可读性和易用性。

腾讯云相关产品中,推荐使用Django框架进行开发的话,可以使用腾讯云的云服务器CVM(https://cloud.tencent.com/product/cvm)作为后端服务器,使用腾讯云的对象存储COS(https://cloud.tencent.com/product/cos)作为文件存储服务。这些产品能够提供稳定的云计算基础设施和丰富的功能来支持开发工作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

drf的接口文档生成与管理

, JSON 格式的 API 定义 /swagger.yaml, YAML 格式的 API 定义 /swagger/, 基于原生 swagger-ui 样式的前端页面 /redoc/, 基于 ReDoc...4.6 更多配置及说明 4.6.1 get_schema_view的配置 函数 get_schema_view 的作用是返回自动生成 API 文档的视图类, 该函数接受以下参数: info: Swagger...API Info对象, 具体定义详见 Swagger/OpenAPI 规范, 如果缺省, drf-yasg默认会用 DEFAULT_INFO 进行填充 url: 项目API的基础地址, 如果缺省, 则根据视图所在的位置进行推导...cache_timeout, cache_kwargs): 返回使用指定UI渲染器的视图函数, 可选的UI渲染器有: swagger, redoc。...SchemaView.without_ui(cache_timeout, cache_kwargs): 返回无UI的视图函数, 该函数可以返回json/yaml格式的swagger文档 以上两个函数均支持通过

4.8K10

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

传统的接口文档通常都是使用Word或者一些接口文档管理平台进行编写,但此类接口文档维护更新比较麻烦,每次接口有变更,需要手动修改接口文档。...接下来,在本篇文章,介绍的就是基于Python3+Django3下,如何接入Swagger框架,并且实现Swagger接口文档的自动生成。 2....django-admin startapp api 需要注意的是,本篇文章示例,是基于Python3及Django当前最新库来进行的。...Django接入Swagger 网上很多资料在介绍Django接入Swagger方法时,都是基于django-rest-swagger库进行讲解的,都殊不知,从2019年6月份开始,官方已经废弃了该库,...到此,我们Django3接入Swagger已经完成了,更多swagger的功能使用请读者自行尝试。 希望这篇文章能帮到你!更多干货文章请关注我们。

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

    经过大家的努力,现在已经有了很多成熟的接口文档标准和生成工具,其中 OpenAPI Specification[1] 就是一个被广泛接收和使用的标准,我们博客接口使用的文档自动化工具,也会基于 OpenAPI...OpenAPI 对以上信息进行了标准化,从而提出了 OpenAPI specification[4],只要文档内容符合这个标准,OpenAPI 工具就可以对它进行处理,例如可视化文档工具就可以读取文档内容生成..."pure_pagination", # 分页 "haystack", # 搜索 "drf_yasg", # 文档 ] 接着使用 drf_yasg 提供的函数来创建一个 django...就可以生成一个文档视图,然后我们将这个视图函数映射到了 4 个 URL。...对于 GET /api-version/test/ 这个接口,它对应的视图集是 ApiVersionTestViewSet,给这个视图集添加一个 swagger_schema 类属性,将值设为 None

    1.8K20

    全面掌握Django开发RESTful API:从基础到高级的实战指南

    本文将从基础到高级,逐步讲解如何使用Django开发RESTful API,并结合代码实例来帮助理解。一、基础准备1. 创建Django项目首先,我们需要创建一个Django项目并安装必要的依赖。...在这里,我们将使用基于类的视图来创建基本的CRUD(创建、读取、更新、删除)API。...五、API文档生成良好的API文档能够帮助开发者和使用者更好地理解和使用API。Django REST framework支持通过Swagger、ReDoc等工具生成API文档。1....使用Accept Header进行版本控制另一种更为优雅的方式是使用HTTP的Accept头来管理API版本。Django REST framework支持通过自定义的版本类来实现这种方式。...我们从安装和设置环境开始,逐步讲解了如何设计和实现API的各个部分,包括序列化、视图、权限和认证、版本控制,以及如何测试和部署API。

    14020

    3.寻光集后台管理系统-依赖环境准备

    第三方库 django REST framework https://www.django-rest-framework.org/ 本次开发使用的是前后端分离的方式开发,所以后端使用django REST...framework来编写RESTful风格的API 特性: 强大的序列化器,可以高效的进行序列化和反序列化操作。...极丰富的类视图,Mixin扩展视图,ViewSet视图 提供了直观的web api界面 支持多种身份认证和权限认证 强大的排序,过滤,分页,搜索,限流等功能。...扩展性强, 插件丰富 django-excel http://django.pyexcel.org/zh/latest/index.html 需求中需要将数据导出excel来进行查看,所以使用django-excel...比如进行模糊查询 drf-yasg https://drf-yasg.readthedocs.io/en/stable/ drf-yasg根据代码生成swagger页面,方便后面的调试 Faker https

    40550

    简化 Django 开发的八个 Python 包 | Linux 中国

    创建出色的管理命令:django-click  django-click[11] 是基于 Click[12] 的,(我们之前推荐过[13]… 两次[14] Click),它对编写 Django 管理命令很有帮助...Django REST 框架的 API 可视化:django-rest-swagger  Django REST Swagger[23] 提供了一个功能丰富的用户界面,用来和 Django REST 框架的...你只需要安装 Django REST Swagger,把它添加到 Django 项目的已安装应用中,然后在 urls.py 中添加 Swagger 的视图和 URL 模式就可以了,剩下的事情交给 API...API 的用户界面按照 app 的维度展示了所有端点和可用方法,并列出了这些端点的可用操作,而且它提供了和 API 交互的功能(比如添加/删除/获取记录)。...django-rest-swagger 从 API 视图中的 docstrings 生成每个端点的文档,通过这种方法,为你的项目创建了一份 API 文档,这对你,对前端开发人员和用户都很有用。

    3K20

    DRF Swagger自定义的action文档参数实现

    #Swagger 这里不讲 DRF(django rest framework) 和 DRS(django rest swagger) 如何结合使用, 在以上两个项目文档中都有相关文档。...但大多数我们往往需要根据特定的需求, 做一些自定义的接口, 比如使用的 api_view 装饰器定义的函数式视图, 或者使用DRF 中的 action 装饰器定义的自定义接口(在一些较早的DRF版本中为...下面我们对一个接口进行改造, 改造前 form Python from django import forms class RegisterForm(forms.Form): name =...DRF 的 schema 是控制接口参数架构的组件, 我们基于默认的 AutoSchema 重写一个新的 Schama....主要逻辑为, 当为函数式视图或者为view 的 action的 endpoint 则通过 yaml 格式的文档描述,其他则通过默认的行为获取接口 link。

    3.7K30

    DRF进阶之DRF视图和常用功能

    View:Django默认的视图基类,负责将视图连接到URL,HTTP请求方法的基本调度,之前写类视图一般都用这个。...()方法:用于获取单条数据,可自定义默认分组名(pk) 基于上面的项目新增app模型: myapp/models.py from django.db import models class User(...:基于Token的认证 RemoteUserAuthentication:基于远程用户的认证 DRF支持权限: IsAuthenticated:只有登录用户才能访问所有API AllowAny:允许所有用户...sex=%E7%94%B7 搜索和排序 DRF提供过滤器帮助我们快速对字段进行搜索和排序 继续修改app视图中新增过滤字段: myapp/views.py from rest_framework.viewsets...Swagger来了,它是一个应用广泛的REST API文档自动生成工具,生成的文档可供前端人员查看。

    4.8K10

    构建强大的API-Django中的REST框架探究与实践

    在Web开发中,RESTful API是一种遵循REST原则的API设计风格,它使用HTTP协议进行通信,通过GET、POST、PUT、DELETE等HTTP方法来实现对资源的操作。...在views.py中定义了一个视图集,使用了ModelViewSet,它提供了默认的CRUD操作。在urls.py中配置了路由,将API端点映射到对应的视图集上。6....例如,我们可以编写基于APITestCase的测试类来测试API的各种端点和功能。另外,为了方便使用和理解API,我们还可以使用Django REST框架提供的文档工具来自动生成API文档。...我们从构建API的基础开始,介绍了如何使用Django REST框架来创建强大的API,并通过代码实例和解析展示了其灵活性和易用性。...首先,我们学习了如何使用Django REST框架来创建简单的API端点,包括定义模型、序列化器、视图集以及路由配置等。

    40820

    django rest swagger

    在周四的测试运维试听课程中,芒果给大家介绍了契约测试,以及基于django rest framework 的 Swagger使用,这里我们来做个小总结。...如果你的RESTful API还未开始,也可以使用Swagger生态,来设计和规范你的API,以Annotation(注解)的方式给你的源代码添加额外的元数据。...下面我们一起来看看基于Django rest API开发的rest framework Swagger的使用。...Django REST Swagger 在我们接口开发完之后,需要交付给别人对接,在没有使用swagger的时候,我们需要单独编写一份api接口文档,由postman之类的工具进行请求得到返回的结果。...' } 然后在你的视图函数或者类里面添加好对应的注释: class ScriptsView(generics.ListCreateAPIView): """ get:

    72610

    Django REST Framework-常用的权限类型

    Django REST Framework是一个用于构建Web API的强大框架。其中一个重要的特性是提供了多种权限类型来控制用户对API端点的访问。...常用的权限类型IsAuthenticated:只允许已经验证身份的用户访问API端点。IsAdminUser:只允许管理员用户访问API端点。...DjangoModelPermissions:基于Django模型的权限控制。允许用户在执行特定操作之前检查模型的权限。...如何使用权限Django REST Framework的权限通常通过将它们附加到视图类中来使用。您可以通过将类变量permission_classes设置为适当的权限类列表来指定要使用的权限。...示例以下是一个更完整的示例,展示如何在Django REST Framework中使用权限。假设我们有一个名为Snippet的模型,它表示代码片段,我们希望只有创建该代码片段的用户才能够修改或删除它。

    1.5K20

    .NET WebAPI 使用 GroupName 对 Controller 分组呈现 Swagger UI

    在日常开发 webapi 时,我们往往会集成 swagger doc 进行 api 的文档呈现,当api数量比较多的时候就会导致 swagger ui 上的 api 因为数量太多而显得杂乱,今天教大家如何利用...GroupName 属性来对 api 的 Controller 进行分组,然后利用 swagger ui 上的 Select a definition 切换功能进行多组 Controller 的切换。...接下来就是对控制器进行分组标记的操作了。...上面讲的方法需要对所有的控制器进行添加 [ApiExplorerSettings(GroupName = "xxxxx")] 属性,下面顺便介绍一下如何通过文件的归类对 控制器进行批量添加 GroupName...至此 .NET WebAPI 使用 GroupName 对 Controller 分组呈现 Swagger UI 就讲解完了,有任何不明白的,可以在文章下面评论或者私信我,欢迎大家积极的讨论交流,有兴趣的朋友可以关注我目前在维护的一个

    1.1K40

    从 Flask 切到 FastAPI 后,起飞了!

    上述中间件计算处理请求所花费的时间。视图函数处理请求后,计算总处理时间并将其作为响应头返回。...FastAPI 默认情况下,FastAPI 支持 OpenAPI 以及 Swagger UI 和 ReDoc。这意味着每个端点都自动从与端点关联的元数据中记录下来。...所有注册的端点都列在这里 此处列出了所有已注册的端点 替代文档 管理应用 Flask Flask 有一个广泛使用的第三方管理包,称为 Flask-Admin,用于快速对您的模型执行 CRUD 操作。...要了解如何针对生产对其进行全面配置,请查看使用 Postgres、Gunicorn 和 Nginx 教程对 Flask 进行 Docker 化。...# 总结 退一步讲,Django 和 Flask 是两个最流行的基于 Python 的网络框架(FastAPI 是第三大流行框架)。不过它们(Django 和 Flask)的理念非常不同。

    1.2K10

    python教程

    用我们的序列化来写常规的Django视图 让我们看看,使用我们新的序列化类,我们怎么写一些API视图。此刻,我们不会使用REST框架的其他特性,仅仅像写常规Django视图一样。...在教程的第三部分,我们基于视图用类,并且看看普通的视图我们如何减少代码。...3, 基于视图的类(class based view) 除了可以用基于视图的函数(function based view)写我们的API,我们也可以用基于视图的类。...再次强调,这和基于视图的函数非常相似。 我们也需要用基于视图的类重构我们的urls.py。...在使用基于类的视图代替基于函数的视图时,我们总会发现views与viewsets有相似的地方。使用视图集(viewsets)没有比你自己的视图更清晰。

    5.1K10

    OpenAPI 3.0 规范-食用指南

    : 如果觉得 description 太过简陋,它也支持 Markdown 语法显示,效果如下: 按照约定 description 应该向用户展示如下信息: 描述整个 API 和如何使用它 为用户提供测试账号和数据...endpoint 进行分组的组名 summary:操作对象的摘要信息,最好限制在 5-10 字以内,主要作为概览展示 description:操作对象的描述信息,尽可能的详细,展示细节信息 operationId...,Swagger 会在访问 API 的时候,根据你的设定访问你的 API,如下: tags 对象 该对象主要是对 OpenAPI 中的多个访问路径进行分组,从而更方面的查看 API 信息,使用示例如下..." 然后我们来看看 Swagger UI 对于分组信息的展示,如下: externalDocs 对象 该对象不常用,主要添加对外部文档的引用,来对目前文档进行补充,例如你可以在根目录添加该属性,如下...https://openweathermap.org/api Swagger UI 会在请求路径的描述中,增加一个外部链接作为对描述的补充,如下: 总结 以上就是一个完整的 OpenAPI 规范的文件的使用说明

    13.7K31

    第 13 篇:分类、归档和标签页

    同时和 index 视图中一样,我们对返回的文章列表进行了排序。此外由于归档页面和首页展示文章的形式是一样的,因此直接复用了 index.html 模板。...URL 和 detail 视图函数对应的 URL 是类似的,这在之前我们讲过,django 会从用户访问的 URL 中自动提取 URL 路径参数转换器 规则捕获的值,然后传递给其对应的视图函数...{% url %} 模板标签接收的第一个参数为被解析视图函数的端点值,这个端点值由 2 部分组成,中间由冒号分隔。...分类页面 同样的写好分类页面的视图函数: blog/views.py import markdown from django.shortcuts import render, get_object_or...然后我们通过模型管理器的 filter 方法过滤出了该分类下的全部文章。同样也和首页视图中一样对返回的文章列表进行了排序。

    81330

    如何使用Django构建现代Web应用程序来管理客户信息并在Ubuntu 18.04上进行反应

    API视图是处理API请求或调用的函数,而API端点是表示REST系统的接触点的唯一URL。...例如,当用户向API端点发送GET请求时,Django会调用相应的函数或API视图来处理请求并返回任何可能的结果。 我们还将使用序列化器。...添加API视图 在本节中,我们将为我们的应用程序创建API视图,当用户访问对应于视图函数的端点时,Django将调用这些视图。...P[0-9]+)$', views.customers_detail), ] 创建我们的REST端点后,让我们看看如何使用它们。...第6步 - 使用Axios使用REST API 在此步骤中,我们将安装Axios,即我们将用于进行API调用的HTTP客户端。我们还将创建一个类来使用我们创建的API端点。

    14K83
    领券