gpt4 book ai didi

django - 具有复杂查询的 REST API

转载 作者:行者123 更新时间:2023-12-02 03:50:22 25 4
gpt4 key购买 nike

我不完全理解如何在后端使用 REST API 以及在前端使用主干 Web 应用程序进行复杂查询。假设我有一个 user 表,它与 user_group 表有关系:

user.group_ref => user_group.id

如果我在 /api/v1/user/1/?format=json 上执行 GET,它将执行类似 SELECT * FROM users WHERE id 的操作= 1。好吧,现在...如果我想 JOIN 我的 user_group 怎么样 user.group_ref = user_group.id 立即拥有访问 user_group 上的数据。我不想执行额外的查询来获取该数据。

也许我整个想法都错了......有没有更简单的方法?

最佳答案

REST 是一组约定。它不提供自动查询映射,因此您需要定义一个服务端点,然后实现它以返回您想要的任何内容。

在您的情况下,组成 URL 的典型方式如下:

GET /groups/(groupid)/users

也就是说“给我属于这个组的所有用户”。或者:

GET /users?group=(groupid)

它在风格上不太“RESTful”,但不会不必要地将组提升为顶级资源。

无论哪种方式,Backbone 都不提供从更复杂的资源中填充集合的 OOTB 方式。对于任何超出简单 CRUD 的操作,您都必须自己实现服务调用,或者使用映射到您的服务的 url 创建一个单独的只读集合。像这样的东西:

var UserGroupCollection = Backbone.Collection.extend({
url: function() { return "groups/" + this.options.groupId + "/users"; }
});

var group = new UserGroupCollection({groupId:1});
group.fetch();

关于django - 具有复杂查询的 REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14588452/

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