Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Model view controller 在MVC设计模式中将RESTful API端点概念化为视图_Model View Controller_Api_Design Patterns_Rest - Fatal编程技术网

Model view controller 在MVC设计模式中将RESTful API端点概念化为视图

Model view controller 在MVC设计模式中将RESTful API端点概念化为视图,model-view-controller,api,design-patterns,rest,Model View Controller,Api,Design Patterns,Rest,当我试图描述我在一篇研究论文中构建的系统时,我在试图表示我创建的系统的复杂性时遇到了以下符号问题: 假设我设计了一个服务,只通过它的RESTful端点与世界通信。然后,我设计了服务B,它使用服务A作为主干并向外部世界表示其数据 假设服务A有自己的模型和数据控制器。那么,RESTful端点是否应该在MVC模式中概念化为视图 假设服务B有自己的一组代理模型,这些代理模型或多或少直接映射服务A的模型。它向用户提供一组GUI视图,其中包含一组完全独立的控制器。MVC中服务A来自哪里?是否应将其表示为封

当我试图描述我在一篇研究论文中构建的系统时,我在试图表示我创建的系统的复杂性时遇到了以下符号问题:

  • 假设我设计了一个服务,只通过它的RESTful端点与世界通信。然后,我设计了服务B,它使用服务A作为主干并向外部世界表示其数据
  • 假设服务A有自己的模型和数据控制器。那么,RESTful端点是否应该在MVC模式中概念化为视图
  • 假设服务B有自己的一组代理模型,这些代理模型或多或少直接映射服务A的模型。它向用户提供一组GUI视图,其中包含一组完全独立的控制器。MVC中服务A来自哪里?是否应将其表示为封装模型
现实世界的例子(与我正在研究的问题无关)是:

  • del.icio.us和pinboard.in提供了大致相似的API集,因此可以作为服务交换给服务客户端(出于疑问,假设它们都是基于MVC模式构建的,但可能有完全不同的模型和控制器集)
  • Delibar是一个iOS应用程序,因此遵循MVC模式并符合服务B的要求;假设Delibar在API端点中表示的服务A的数据模型之后对其数据进行建模

因此pinboard.in和del.icio.us是Delibar的模型吗?RESTful端点是视图吗?因此,pinboard.in和del.icio.us的视图集是否相同?

端点是控制器上的动作/操作。视图是控制器响应HTTP GET请求返回的数据(HTML、XML、JSON或其他)

服务A不表示为服务B的MVC三元组的一部分,因为MVC处理与模型的交互以及控制器对视图的选择。服务A通过服务B的数据访问层访问。如果您使用的是“活动记录”模式,则服务B中的控制器对模型的查询或更改将由模型本身传递到数据访问层。如果您使用的是域服务/数据映射器/存储库模式,那么控制器将调用封装数据访问的该层