在一个项目中实现Web API/网站的最佳实践

4
我正在创建一个新的网站和Web API。使用VS2013模板,我选择了webapi模板(带有单独的登录)。该模板创建了一个mvc asp网站。
将我的网站和Web API放在同一个项目中是否有问题,或者应该在我的解决方案中创建两个项目,一个用于API,另一个用于网站?
我正在考虑允许桌面应用程序也使用该api。
2个回答

4
正如Brian所说,没有什么问题,但这不仅仅是关于代码组织,如果您将它们托管在同一个项目中,则如果您正在构建SPA(从浏览器发出XHR请求),则无需为API启用CORS,因为它们都将位于同一域上。 此外,从安全角度来看,这将变得复杂,因为您将使用MVC应用程序的cookie和API的bearer token。我不是很喜欢带有个人账户的VS 2013 Web API模板,因为它添加了许多中间件和样板代码,您可能需要使用或不知道其功能。 我的建议是从一开始就将它们分开,并对两个项目进行控制。 您可以在这里阅读有关如何从头开始构建API以及所需组件的更多信息。

1
谢谢您确认了我不想接受的事实。 :) 我现在会使用模板,但也会阅读您的文章。 - Gina Marano

1
在 ASP.NET MVC 项目中包含 WebAPI 代码并没有什么“问题”。简单来说,将 WebAPI 放在另一个项目中只是为了更好地组织代码,而将任何代码放在另一个项目中也是为了更好地组织代码。如果你的项目很小,会一直保持小,并且只有你一个人在项目上工作,那么将 API 留在同一个项目中确实没问题。
但是,如果你期望其他人参与该项目,如果你期望代码库不断增长,则应从一开始就很好地组织你的代码,并将 WebAPI 放在一个独立的项目中。
但是,简短的回答是:这是错误的,你应该始终紧密地组织你的代码,否则它将失控,无序,并且难以在未来进行维护。
因此,请将 WebAPI 放在一个独立的类库项目中。

谢谢,我知道这是正确的方法,但一直在试图证明采取简单的方式是可行的。 - Gina Marano

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接