我正在设置一个 Web API,将通过我们的内部网络服务于客户端。为了方便客户端开发人员,我考虑让 Web API 遵循一个与客户端共享的接口,类似于以下内容。
使用“共享”接口的目的主要是为了使对 Web API 的更改能够在编译时被客户端开发人员检测到。此外,客户端可以利用该接口来创建 HttpClient 实例的包装器,以便用于与 Web API 通信。
客户端开发人员希望在整个实现过程中使用 async 和 await,我又有什么理由说“不”呢?
使用“共享”接口的目的主要是为了使对 Web API 的更改能够在编译时被客户端开发人员检测到。此外,客户端可以利用该接口来创建 HttpClient 实例的包装器,以便用于与 Web API 通信。
客户端开发人员希望在整个实现过程中使用 async 和 await,我又有什么理由说“不”呢?
public interface IValueController
{
Task<string> ReadAsync();
string ReadSync();
}
[Route("api/v1/[controller]")]
public class ValueController : Controller, IValueController
{
[HttpGet("async")]
public Task<string> ReadAsync()
{
return Task.FromResult("async!");
}
[HttpGet("sync")]
public string ReadSync()
{
return "sync!";
}
}
我对提供同步和异步方法都不是特别感兴趣 - 其中一个就够了。问题是:将Web API操作定义为异步是否有任何不利因素?如果没有,我会全力以赴!
-S