gpt4 book ai didi

django - 在使用 Django Rest Framework (DRF) 编写基于类的 View (CBV) 时,使用 GenericAPIView 还是基本 APIView 更好?

转载 作者:行者123 更新时间:2023-12-04 14:20:49 25 4
gpt4 key购买 nike

在过去一年左右的时间里,我一直在使用 django 进行编码,我的大部分工作是编写 API 以连接到基于 React 的前端。在我的大部分教程中,我看到人们使用 GenericAPIViews 作为基础知识,但我没有发现任何关于 API 中复杂代码的实质内容。因此,为了及时交付我的代码,我选择了更简单的解决方案,即使用 APIView,我使用较少的抽象,对我的代码有更多的控制(通过编写更多代码)并清楚地理解我的代码模块的功能。

我担心的是,如果我通过选择不学习如何使用 GenericAPIViews 来选择捷径,那么我可以充分发挥它的潜力。我在一般情况下使用 GenericAPIViews 或 DRF 时遇到的一些问题。

  • 自定义权限(例如,我想要一个经过身份验证并且还具有特定权限级别访问权限的用户(例如 can_do_xyz 或 has_access_to_abc)
  • 使用可能需要通过复杂的业务/应用逻辑层的可写序列化程序
  • 在同一个 GenericAPIView 类函数中为多个模型创建条目。

目前,我在使用基本 APIView 的方法中遇到的问题是我设法编写的 swagger 文档是垃圾。

  • 我需要在 api 架构文档中手动指定查询/表单/路径字段(使用 AutoSchema)
  • 此外,如果一个 API 具有包含不同字段的 get/post/put/delete 方法,swagger 中的每个 API 端点都将显示方法中使用的所有字段(这是可以理解的,因为我为类定义了架构并且不适用于单独的功能)。有什么办法可以解决这个问题吗?
  • 删除方法应该只需要 survey_id 作为参数,而 POST/PUT 方法需要正文。

最佳答案

我个人更喜欢使用 GenericAPIViews 和合适的 mixins,它更冗长,但我可以更好地控制添加的 REST 操作,我认为这对使用我的项目的其他开发人员有帮助。

要管理其余文档,您可以使用 drf-yasg这允许告诉序列化程序每个方法。

关于django - 在使用 Django Rest Framework (DRF) 编写基于类的 View (CBV) 时,使用 GenericAPIView 还是基本 APIView 更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55085164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com