【问题标题】:REST architecture - handle data processing in model or controller?REST 架构 - 在模型或控制器中处理数据处理?
【发布时间】:2013-04-19 23:50:02
【问题描述】:

我有一个带有 REST 端点的 MVC Web 应用程序,它接收 JSON 格式的数据,这些数据需要被解析、验证并持久化到数据库中。 REST 端点被映射到一个控制器函数。

我需要知道的是应该在哪里进行解析、验证和持久化。应该在映射到 REST 端点的控制器函数中完成,还是应该使用控制器将数据简单地路由到模型层进行处理?处理这种情况的推荐方法是什么?

【问题讨论】:

  • 澄清您的 REST 端点,它是否期望 String 保存传入的 JSON 数据或复杂对象?通常在 Jersey+Jackson Rest 实现中,传入的 JSON 数据被转换为您作为参数接收的复杂对象,并进一步处理该对象..

标签: rest model-view-controller architecture


【解决方案1】:

通常,您希望模型在独立于表示的级别上运行。因此,您通常希望在视图或控制器中完成解析;与验证、计算和持久性相关的任务应该在模型中完成。

应以独立于表示的方式提供这些操作的数据。例如,如果您的 RESTful 服务使用 XML 输入,则视图或控制器应处理解析。模型应该看到已解析输入的对象表示。这将使您可以通过提供不同的视图来简单地切换表示 - 例如,您将能够更改您的服务以处理 JSON 输入,而无需接触您的模型。

请注意,这是 MVC 职责分工的一部分,在 RESTful 架构之外也是如此。

【讨论】:

    猜你喜欢
    • 2012-07-18
    • 2018-02-28
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    • 2014-07-04
    相关资源
    最近更新 更多