4

对于遵循相当新ASP.NET Web API的 .

我最近一直在设计一个用于 Web 和移动客户端的大型 API。我注意到在通过 Microsoft 提供的 ASP.NET Web API 模板中NuGetWeb API 包提供的 ASP.NET Web API 模板中,他们对视图采用了非常简单的方法,并带有一个稍微漂亮的主页。

这在某种程度上把我带回来了。主要是因为我会假设 Web API 正是为此而设计的,即 Web API,仅此而已。

在其他人看来,开发 Web 客户端(与您的 API 接口)是标准的吗

  • 在 Web API 项目内部?

    或者

  • 在 Web API 项目之外将 Web 客户端分开,就像您的移动或桌面客户端一样?

在可维护性和代码清洁度方面,第二个选择对我来说似乎是合乎逻辑的,但在使用 ASP.NET Web API 进行设计时,可能还有其他方面可能会有所帮助。你怎么看?

4

1 回答 1

2

很高兴看到您使用 Web API!

关于您的第一个问题,您说得对,将 Web API 与视图分开在概念上是有意义的。我建议在 MVC 新项目对话框中使用“空”项目类型,然后添加 API 控制器。或者自己将 NuGet 包添加到一个空的 Web 项目中。这些包不应该向您的项目添加任何视图。

关于客户端,我强烈建议将客户端库分离到单独的项目中以实现可维护性。不过,您可以在客户端和 Web API 之间共享通用数据类型。在这种情况下,将模型移动到单独的 dll 并让客户端和 Web API 引用该库中的类型是一种常见的模式。

您希望客户端和 Web API 分开的几个原因(还有更多):

  • 如果您分发库,您希望分发客户端代码而不是 Web API 代码
  • 您希望在客户端和服务器之间创建一个干净的合同,并避免让客户端依赖于服务器实现,反之亦然。
于 2013-04-14T01:19:42.627 回答