2010-01-05 84 views
1

我正在开发一个Web应用程序。这更像是一个业务线应用程序,而不是一个网站。我正在使用ASP.NET MVC,SQL Server 2008,并且我已经购买了LLBLGen。我需要为第三方提供某种API。例如,如果这是一个医疗应用程序,第三方可能需要CRUD病人,检索复杂的报告,参与某些类型的工作流程等。ASP.NET MVC并提供第三方API

什么是最好的方式来做到这一点与MVC没有去建筑宇航员路线。我是否需要整个“Web服务”类型层,还是可以在MVC中重新使用我的控制器?通过MVC暴露这种API是否有意义?理想情况下,我需要一个涉及最少代码重新排序的解决方案。我发现了一些关于用MVC做REST的东西,但其中一些却很模糊,我不确定它是否合理。我需要一个合理的API,但我不需要遵循REST宗教或类似的所有原则。除了向网站提供HTML前端之外,我只需要某种API,无论是REST还是SOAP。

此外,处理URL的方法有哪些?并非应用中的所有内容都映射到网站/产品/产品ID。其中一些涉及到复杂的工作流程等。

回答

0

如果你打算有一个网站和一个web服务,那么我会考虑将数据访问和实体层从MVC中分离出来。

这样,您的网络服务可以完成与您的网站相同的功能。我会有一个服务层,他们都与之交互。之后,这些调用将转到数据库并返回对象,Web服务和网站都不能与此层进行交互。

这个概念也被称为Separation of Concerns

您不能/不应该在Web服务中重用您的MVC控制器。如果它们如此相似以至于无法区分,那么就考虑将您的网站编写为Web服务的客户端,而不是将其作为同一解决方案的一部分。