我正在使用python-eve开发一个rest-api。我的对象包含网址,描述和图像。用户可以插入或查看产品(用于插入 - 用户只需添加网址,然后生成描述和图像)。
为了避免重复更新 - 当用户使用POST请求插入已存在的url时,我想将其重定向到与该url对应的项目的url。为此,我添加了以下代码:
def pre_post_callback(request, lookup):
prev_object = current_app.data.driver.db['products'].find_one({"url":lookup.values['url']})
if prev_object:
# here I would like to redirect the user to the /product/id of the product corresponding.
app.on_pre_POST += pre_post_callback
但是,当两次添加相同的网址时,我会不断添加(覆盖)现有项目。
如何将用户从帖子前回调挂钩重定向到已存在的产品?
答案 0 :(得分:0)
如果我理解得很好,您希望使用类似查询的响应来响应POST(写入)请求。在REST中,你真的不想这样做,而Eve(作为一个REST框架)并不适合那样,尽管你可能会通过一些黑客行为获得类似的结果。
在您的案例中,您可能会为unique
字段设置url
规则,因此POST最终会得到409 Conflict
响应。