用于额外回调的 Monkey 补丁 eve.methods

Monkey patch eve.methods for additional callbacks

我正在尝试修补 eve 方法以提供回调来做一些预处理和 post-在它们变成有效负载之前分别处理请求和回复,例如:

from eve.methods.patch import patch_internal as __patch_internal
def my_patch(resource, payload=None, **lookup):
    response, last_modified, etag, status = __patch_internal(
                                          resource, payload,
                                          concurrency_check=True,
                                          skip_validation=False, **lookup)
    # call callback depending on resource passing response
    return response, last_modified, etag, status
    import eve.methods
    eve.methods.patch = my_patch

我面临的问题是Eve中的大部分函数都是直接导入的。 我必须分叉 Eve 才能这样做吗?

您调查过 Event Hooks 了吗?它们允许您将自定义回调函数绑定到 pre 和 post 事件和数据库操作。回调可以改变原始查询、正在存储的文档或返回的有效负载。

def inject_username_lookup(resource, request, lookup):
    # alter the original query
    lookup["username"] = {'$exists': True}

app = Eve()

app.on_pre_GET += inject_username_lookup
app.run()

由于您可以将多个回调挂接到同一事件(它们将按顺序执行),因此它允许实现一些非常好的关注点分离。 Database events也很厉害。