我需要在每个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请求重复相同的逻辑。
有没有更好的方法来处理这种情况?如何?
感谢。