首页
学习
活动
专区
工具
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.7K10
  • 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功能使用请读者自行尝试。 希望这篇文章能帮到你!更多干货文章请关注我们。

    15.6K32

    第 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

    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

    40250

    简化 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-swaggerAPI 视图 docstrings 生成每个端点文档,通过这种方法,为你项目创建了一份 API 文档,这对你,前端开发人员和用户都很有用。

    2.9K20

    Django REST Swagger实现指定api参数

    参数就可以在文档相应api条目中显示出api描述、正常输出、异常输出、参数名称、描述、是否必填、值类型、参数类型不同参数类型有不同显示效果。...难点 Django REST Swagger < 2 版本,要指定swaggerapi参数非常容易,只要将相关说明以特定格式和yaml格式写在相应api视图函数文档字符串(DocStrings...一种解决方案 在Django REST framework基于api视图中定义filter_class过滤出模型(models)特定字段,swagger会根据这些字段来渲染。...启发 查阅Django REST Swagger文档,Advanced Usage提到,基于文档api视图是这样: from rest_framework.response import Response...所以可以通过重载schema变量,利用yaml包解析出api视图函数文档字符串中参数定义赋值给schema变量。

    2.2K20

    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.6K10

    构建强大API-DjangoREST框架探究与实践

    在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端点,包括定义模型、序列化器、视图集以及路由配置等。

    39520

    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:

    71510

    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

    python教程

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

    5.1K10

    从 Flask 切到 FastAPI 后,起飞了!

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

    74110

    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.1K31

    第 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 方法过滤出了该分类下全部文章。同样也和首页视图中一样返回文章列表进行了排序。

    80830

    Django模板标签中url使用详解(url跳转到指定页面)

    这里 {% url %} 这个模板标签作用是解析视图函数 blog:archive 对应 URL 模式,并把 URL 模式中年和月替换成 date.year,date.month 值。...{% url %} 模板标签接收第一个参数为被解析视图函数端点值,这个端点值由 2 部分组成,中间由冒号分隔。...第一部分为在应用 urls.py 中指定 app_name 值(充当命名空间,这样即使不同 app 下有相同视图函数名,也不会冲突),第二部分 path 函数中传入 name 参数值。...虽然现在 blog:archive 视图函数对应 URL 模式是这种形式,但是如果哪天这个模式改变了呢?...</a </li </ul </body </html 到此这篇关于Django模板标签中url使用详解(url跳转到指定页面)文章就介绍到这了,更多相关Django url使用内容请搜索

    1.5K31
    领券