在每个ASP.NET Web API请求中重复逻辑,应该去哪里?

时间:2012-07-16 16:03:36

标签: asp.net-web-api

我需要在每个API请求中需要检索的会话(或ASP.NET Web API中的任何内容)中存储一些信息。我们将有一个api IIS网站,并将通过主机头添加多个网站绑定。当任何请求进入时,例如,api.xyz.com,将检查主机头并将该网站信息存储在会话中,该会话将在调用数据库时在每个后续api请求中使用。希望这很清楚。

我找到了一种在ASP.NET Web API中处理会话的方法。 ASP.NET Web API session or something?

我对asp.net网络表单有更多了解,我们可以覆盖PreRequestHandler。我在ASP.NET Web API中寻找类似的东西,我可以使用我的逻辑获取api域的数据库ID(例如,api.xyz.com)并将其存储在我希望在每个API GET / POST中访问的会话中请求。

有人肯定会说通过添加会话我使其成为有状态但REST是无状态的。但我想为每个api请求保存数据库之旅。如果我不使用会话或类似的东西,我最终会为每个api请求重复相同的逻辑。

有没有更好的方法来处理这种情况?如何?

感谢。

1 个答案:

答案 0 :(得分:1)

如果所有请求都需要这种逻辑,那么最好使用delegating handlers的实现。