【发布时间】:2018-06-01 12:53:14
【问题描述】:
我编写了一个安全 Web API,所有控制器级别的方法都是异步的。我的想法是下游客户可以根据需要简单地“等待”同步处理的方法。
但是,我遇到了一种情况,即 ASP.NET MVC(预核心)中的 AuthorizationAttribute 不支持异步方法挂钩。所以我需要能够提供其中一些方法的可选同步版本。
有什么优雅的方法可以做到这一点?例如,假设我目前定义了以下路由来获取用户:
api/v1/users/{userGuid}
这是方法签名:
public async Task<IHttpActionResult> GetUserAsync(Guid id, [FromUri] string expand=null)
如何更新我的 API 以提供此方法的同步版本?看来我需要更新 uri 以适应这种情况:
api/v1/users/{userGuid}/synchronous
否则,我还能如何识别和处理对特定 API 方法的同步版本的请求?
【问题讨论】:
标签: c# .net rest asp.net-web-api asp.net-web-api2