繁体   English   中英

API 过渡:从 GraphQL 到 REST(使用 Django)

[英]API Transition : From GraphQL to REST (with Django)

For my current project (stack = Django + API + Vuejs ), up to now I used GraphQL for my API (over Django, with graphene-django ). 但是这个库和其他链接的库(例如处理JWT的库)被完全废弃了,有错误和奇怪的东西,所以为了对未来更有信心,我决定改用著名的Django DRF

问题是,我现在已经习惯了 GraphQL 系统的查询和突变,这在设计上非常简单(也许是因为我已经习惯了),当谈到从 DRF 开始时,我感觉有点迷茫。

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

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

例如,更新不仅仅是提供所有 arguments,更新 model 和 TADAAAA。 对于特定领域,我必须执行特定操作。 (例如:如果修改了特定字段,则发送邮件,...)

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

1 function = 1 个视图(URL)?

是这样吗?

提前感谢您的澄清。

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

是的,还需要做额外的工作:例如自己编写 URL,但是“显式优于隐式”

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM