我正在创建一个新网站和网络API。使用VS2013模板,我选择webapi模板(单独登录)。该模板创建了一个mvc asp站点。
将我的网站放在与我的web api相同的项目中是否有任何问题,或者我应该在我的解决方案中创建两个项目。一个用于API,一个用于网站?
我正在考虑允许桌面应用也使用api。
答案 0 :(得分:4)
正如Brian所说,没有任何问题,但它不仅仅是关于代码组织,如果你在同一个项目中托管它们,那么如果要构建SPA(从浏览器发出XHR请求),则不需要为API启用CORS,他们俩都会在同一个领域。 从安全性的角度来看,它也会变得复杂,因为您将使用cookie作为MVC应用程序和API的承载令牌。我不喜欢具有个人帐户的VS 2013 Web API模板,因为它添加了许多您可能需要使用或不了解其功能的中间件和样板代码。 我的建议是将它们从一开始就分开,并控制两个项目。 您可以阅读有关如何从头开始构建API以及所需组件的更多信息here。
答案 1 :(得分:1)
没有什么"错误"在ASP.NET MVC项目中包含WebAPI代码。最简单的是,将WebAPI放在一个单独的项目中仅仅是代码组织,在另一个项目中拥有任何代码都是关于代码组织的。如果您的项目很小,将保持很小,并且您是唯一一个在项目上工作的人,而不是将API保留在与ASP.NET MVC网站相同的项目中。
但是,如果您希望其他人参与该项目,那么您希望代码库能够增长。您应该从一开始就组织好您的代码,并将WebAPI放在一个单独的项目中。
但是对于一个较短的答案:这是错误的,你应该始终紧紧地组织你的代码,否则它将失去控制,混乱并且将来难以维护。
所以将WebAPI放在一个单独的类库项目中。