小编Cha*_*des的帖子

REST API框架.无效的querystring参数的推荐行为

我正在实现一个REST API框架,我想知道当客户端提交无效的查询字符串参数时,推荐行为是什么.

我将用一个具体的例子来说明我的意思:说,我在/ api/contacts/endpoint上有一个API处理程序,并且处理程序提供了一个名为querystring的过滤器id,它使客户能够使用提供的ID选择某些联系人.

因此,GET或DELETE请求可能是/api/contacts/?id=2&id=4&id=lalalala.

显然,没有联系方式id=lalalala.在这种情况下,服务器应该是什么样的?

  • 忽略无效的联系人id=lalalala,仅过滤有效ID,2和4上的联系人.

  • 回复指示此错误的错误代码.如果是,应提供哪个错误代码?

提前致谢.

编辑:澄清; 我开发的框架的主要焦点是具有可预测的行为,因此具有响应代码.出于这个原因,我希望客户端使用基于此框架构建的API,以期获得最少的意外.所以,问题基本上是:在这种情况下API应该返回错误(如果是,那么)?或者忽略无效的过滤条目,只过滤正确的查询字符串参数?

api rest error-handling query-string

18
推荐指数
2
解决办法
1万
查看次数

基于 Django 类的视图 - request、args 和 kwargs 对象

在我看来,在 Django 的基于类的通用视图中,参数requestargskwargs传输,既作为视图实例属性,又作为方法参数。

我到底是什么意思?

Class django.views.generic.base.View,定义了以下函数,由其as_view方法调用:

def view(request, *args, **kwargs):
    self = cls(**initkwargs)
    if hasattr(self, 'get') and not hasattr(self, 'head'):
        self.head = self.get
    self.request = request
    self.args = args
    self.kwargs = kwargs
    return self.dispatch(request, *args, **kwargs)     
Run Code Online (Sandbox Code Playgroud)

该函数首先将requestargs和设置为视图实例属性,然后使用所有这些作为参数kwargs调用视图的方法。dispatch如果有的话,这样做的具体目的是什么?这不是多余的吗?

django redundancy request args keyword-argument

3
推荐指数
1
解决办法
5314
查看次数

Django:select_related()和内存使用情况

我正在研究API,我有一个问题.我正在研究select_related()的用法,以便为自己保存一些数据库查询,实际上它确实有助于减少执行的数据库查询量,以及大型和更复杂的查询.

我的问题是,使用select_related()会导致heasvier内存使用吗?运行一些实验我注意到确实是这种情况,但我想知道为什么.无论我是否使用select_related(),响应都将包含完全相同的数据,那么为什么使用select_related()会导致使用更多的内存?

是因为缓存吗?也许使用单独的数据对象来缓存相同的模型实例?我不知道还有什么想法.

提前致谢.

memory django django-select-related

2
推荐指数
1
解决办法
565
查看次数