使用OWIN Middleware扩展WebApi响应

时间:2015-09-29 18:59:52

标签: asp.net-web-api asp.net-web-api2 owin

我有一个基于OWIN的WebApi项目,我想用一些额外的数据扩展WebApi调用的结果,例如将本地化数据添加到响应中。

最初的想法是在管道中注入该逻辑,一旦我们得到API调用的结果,我就把json包装起来,包含翻译和一些额外的属性,比如执行时间。

所以我写了自己的中间件把它放在UseWebApi()之后,但它没有被执行,因为WebApi在处理请求时不会调用“Next”

所以问题是:

如何修改/扩展WebApi中间件返回的Json? 任何其他想法如何处理必须为所有请求执行的操作的问题?

谢谢

1 个答案:

答案 0 :(得分:2)

关于中间件: 你需要在UseWebApi之前放置你的中间件,并在调用下一个中间件之后放置你的逻辑;在这种情况下,在完成Web API处理请求后,您的代码就会很好地执行。

您可能还想查看以下博文,它讨论了与您相同的情况: http://www.devtrends.co.uk/blog/wrapping-asp.net-web-api-responses-for-consistency-and-to-provide-additional-information