asp.net-web-api – ASP.NET Web API:客户端的设计实践

对于那些遵循相当新的ASP.NET Web API的人来说,他们知道这是一个很好的框架,用于构建设计良好且面向外部的HTTP服务,这些服务可以跨越许多使用标准
XML
JSON内容类型的不同客户端.

我最近设计了一个与Web和移动客户端一起使用的大型API.我注意到在通过Microsoft的Web API的NuGet包提供的ASP.NET Web API模板中,他们采用一种非常小的方法进入具有稍微漂亮主页的Views.

这让我退了一步.主要是因为我认为Web API的设计恰好是Web API,而不是其他任何东西.

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

>在Web API项目中?

要么
>在Web API项目之外,将Web客户端与移动或桌面客户端分开?

第二种选择在可维护性和代码清洁方面对我而言似乎合乎逻辑,但在ASP.NET Web API中进行设计时可能还有其他一些观点可能是有益的.你怎么看?

最佳答案 很高兴看到您使用Web API!

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

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

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

>如果分发库,则需要分发客户端代码,而不是Web API代码
>您希望在客户端和服务器之间创建一个干净的合同,并避免客户端依赖于服务器实现,反之亦然.

点赞