【问题标题】:Best practice webapi/website in one project一个项目中的最佳实践 webapi/网站
【发布时间】:2014-10-07 13:29:16
【问题描述】:

我正在创建一个新网站和 web api。使用 VS2013 模板,我选择了 webapi 模板(带有个人登录)。该模板创建一个 mvc asp 站点。

将我的网站与我的 web api 放在同一个项目中是否有任何问题,或者我应该在我的解决方案中创建两个项目。一份用于 API,一份用于网站?

我正在考虑允许桌面应用程序也使用该 api。

【问题讨论】:

    标签: c# visual-studio asp.net-web-api


    【解决方案1】:

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

    【讨论】:

    • 感谢您确认我不想接受的内容。 :) 我现在将使用模板,但也会查看您的文章。
    【解决方案2】:

    不,在 ASP.NET MVC 项目中包含 WebAPI 代码并没有什么“错误”。最简单的说,将 WebAPI 放在一个单独的项目中只是代码组织,而将任何代码放在另一个项目中就是代码组织。如果您的项目很小,仍然很小,并且您是该项目的唯一工作人员,那么将 API 留在与 ASP.NET MVC 网站相同的项目中确实很好。

    但是,如果您希望其他人参与该项目,如果您希望代码库增长。你应该从一开始就组织好你的代码,并将 WebAPI 放在一个单独的项目中。

    但对于一个更简短的答案:这是错误的,你应该始终紧紧地组织你的代码,否则它会失去控制,变得杂乱无章并且难以在未来维护。

    所以将 WebAPI 放在一个单独的类库项目中。

    【讨论】:

    • 谢谢,我知道这是要走的路,但我试图证明采取简单的方法是合理的。
    猜你喜欢
    • 1970-01-01
    • 2010-11-10
    • 2011-06-09
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多