【问题标题】:API Transition : From GraphQL to REST (with Django)API 转换:从 GraphQL 到 REST(使用 Django)
【发布时间】:2021-04-25 09:40:28
【问题描述】:

对于我当前的项目(堆栈 = Django + API + Vuejs),到目前为止,我的 API 使用 GraphQL(通过 Django,使用 graphene-django)。但是这个库和其他链接的库(例如处理JWTs 的库)被完全废弃了,有错误和奇怪的东西,所以为了对未来更有信心,我决定切换到众所周知的Django DRF

问题是,我现在已经非常习惯 GraphQL 系统的查询和突变,它的设计非常简单(可能是因为我已经习惯了),当涉及到 DRF 时,我觉得有点丢了。

确实,我想我理解最简单的方法是同时使用ModelSerializerModelViewSet 但是......我觉得它隐藏了很多东西。就像它有默认方法(list()retrieve()、...)。

如果我想通过只定义必要的来控制这一切怎么办? 此外,我有非常具体的需求。

例如,更新不仅仅是给出所有参数,更新模型和 TADAAA。 对于特定领域,我必须执行特定操作。 (例如:如果特定字段被修改,发送邮件,...)

也许对我的用例来说最好的方法是使用简单的视图,我的意思是,就像在 Trade-offs 中解释的那样,使用基于函数的视图可能是最接近我使用 GraphQL 所做的方法?

1 个函数 = 1 个视图(URL)?

是吗?

提前感谢您的澄清。

【问题讨论】:

    标签: django django-rest-framework


    【解决方案1】:

    在进一步探索DRF 之后,我想到最接近 GraphQL 方法(对我来说有很多自定义方法)是使用Function Based Views。事实上,这背后没有隐藏的行为或 API 方法,我可以完全控制 API。

    是的,还需要额外的工作:例如自己编写 URL,但是 "Explicit is better than implicit"

    所以对我来说 1 个 URL = 1 个突变/查询。我在后面执行相同的工作。

    【讨论】:

      猜你喜欢
      • 2021-11-23
      • 2021-07-07
      • 1970-01-01
      • 2020-09-17
      • 2020-01-21
      • 2017-03-08
      • 2022-11-30
      • 1970-01-01
      • 2018-03-19
      相关资源
      最近更新 更多