我正在创建一个新的网站和Web API。使用VS2013模板,我选择了webapi模板(带有单独的登录)。该模板创建了一个mvc asp网站。将我的网站和Web API放在同一个项目中是否有问题,或者应该在我的解决方案中创建两个项目,一个用于API,另一个用于网站?我正在考虑允许桌面应用程序也使用该api。
正如Brian所说,没有什么问题,但这不仅仅是关于代码组织,如果您将它们托管在同一个项目中,则如果您正在构建SPA(从浏览器发出XHR请求),则无需为API启用CORS,因为它们都将位于同一域上。 此外,从安全角度来看,这将变得复杂,因为您将使用MVC应用程序的cookie和API的bearer token。我不是很喜欢带有个人账户的VS 2013 Web API模板,因为它添加了许多中间件和样板代码,您可能需要使用或不知道其功能。 我的建议是从一开始就将它们分开,并对两个项目进行控制。 您可以在这里阅读有关如何从头开始构建API以及所需组件的更多信息。
在 ASP.NET MVC 项目中包含 WebAPI 代码并没有什么“问题”。简单来说,将 WebAPI 放在另一个项目中只是为了更好地组织代码,而将任何代码放在另一个项目中也是为了更好地组织代码。如果你的项目很小,会一直保持小,并且只有你一个人在项目上工作,那么将 API 留在同一个项目中确实没问题。但是,如果你期望其他人参与该项目,如果你期望代码库不断增长,则应从一开始就很好地组织你的代码,并将 WebAPI 放在一个独立的项目中。但是,简短的回答是:这是错误的,你应该始终紧密地组织你的代码,否则它将失控,无序,并且难以在未来进行维护。因此,请将 WebAPI 放在一个独立的类库项目中。