2016-03-31 46 views
0

如何处理牛仔中的resource_exists回调?毕竟,要找出资源是否存在 - 我必须查询(例如数据库)的资源。但是,在AcceptResource回调期间(例如to_html),我必须再次查询资源。有什么办法可以防止这种双重查询?Cowboy rest resource_exists回调

有没有什么办法来保留AcceptResource回调的资源,这样我就不必再把它从数据库中拉出来了?

阅读牛仔文档,有关于如何处理休息请求的flowchart。 其中,首先调用回调resource_exists

回答

3

resource_exists中,您可以将数据库查询的结果添加到resource_exists返回的State变量。

该状态作为输入传递给AcceptResource回调,您可以在其中使用缓存的值。

+0

没错。说得通!什么是状态变量的结构?它的初始价值是什么? – drozzy

+1

哦,明白了,它会调用'rest_init/2',它必须返回'{ok,Req,State}'。来源:http://ninenines.eu/docs/en/cowboy/1.0/guide/rest_handlers/ – drozzy