私はEveフレームワークをREST APIサービスに使用しています。 はまた、私はいくつかのアクションの前にいくつかの前処理を行うためのDBのフックを使用しています: 私はon_update
フックにデータベースに私の更新されたデータを保存する必要はありますかそれはupdates
などでoriginal
アイテムを更新するだけで十分です: http://python-eve.org/features.html#database-event-hooksEveフレームワーク:on_updateフック
私の質問は:
original.update(updates)
またはこのように何とかしてこのデータを保存するために必要なのは:
updated_item = original.update(updates)
# Fetch somehow requested resource from `resource_name` and do staff like this:
updated_resource = RequestedResource(updated_item)
updated_resource.commit()
それとももっと良い/もっとEVEの方法がありますか?
ところで、私がリクエストをやっている:あなたのon_update
フックで
requests.patch("http://127.0.0.1:7000/users/2", headers=headers, json={"name": "John", "age": 30})
上記のリクエストを 'requests'で送信すると' updates'に '{" name ":" John "、" age ":30}'があり、私のオリジナルでは元のデータです。しかし、同じアイテムを2回目に取得すると、古いデータ(更新されていない)が含まれています – smart
PATCHのHTTP応答は何ですか?これはうまくいくはずですので、いくつかの検証エラーが発生しているようです。あなたはエタグヘッダを使用していますか? – gcw
( 'message:'、u '{"created_at": "2017-03-24T09:08:05"、 "_status": "OK"、 "_links":{"self":{"href": "users/2 "、" title ":" User "}}}、" updated_at ":" 2017-05-16T12:20:46 "、" id ":2} ') (' status: '、200) – smart