API在MVC中扮演什么角色?

时间:2019-05-21 16:57:37

标签: javascript php reactjs

我仍在尽力了解MVC。

我知道在正常设置下,用户会请求一个网页。该请求由控制器读取,并且例如,如果用户需要查看5个博客,则请求模型从数据库中检索5个博客,并将这些博客返回给控制器。然后,控制器将这5个博客文章发送到“视图”,然后将其插入到普通网页中。然后,视图将数据返回给用户,他们在网站上看到5个博客文章。 (如果我做错了,请纠正我。由于某种原因,我发现它很难掌握。)

现在我在一个项目中使用React,我想对我的PHP进行API调用以检索数据。

这是否意味着如果我请求“ website.com/api/blogposts/5”,PHP中的Controller就会读取这是一个api调用,向Model询问5个Blogpost,并将此数据作为响应发送回去。这将使React View成为现实,对吧?

很抱歉,如果这应该是基本信息。我只是束手无策。

2 个答案:

答案 0 :(得分:2)

似乎您可能会混淆一些概念,所以让我们花一点时间将它们分开。

让我们先谈谈Web API,它基于您提供的上下文,正在尝试构建与PHP API进行通信的React应用。 MVC不一定适用于此。它作为一个单独的应用程序存在,因此在某种MVC架构中尝试将它们一起考虑会引起混乱。该API可能具有REST之类的体系结构,并且将构建为向您的客户端应用程序提供数据。

反应,我对平台的了解并不广泛,但是从理论上讲,您可以在构建项目的方式中映射出某种类型的MVC样式架构,但是React不是MVC框架。它是基于组件的,旨在为单页应用程序创建可重用的组件。您可以阅读有关此here.

的更多信息

MVC,我发现以asp.net mvc为例进行解释最容易,但是我将尝试解释一种不依赖于此的方法。 MVC是典型的服务器端网页加载平台中最常见的原理。视图是网页,控制器是服务器上的路由,模型定义了服务器上返回的页面上看到的数据。您的大多数MVC指南都会对此进行详尽的解释。

总而言之,如果您想为您的前端应用程序学习React并在PHP中设计一个与之一起使用的API,您将想了解React的设计用途。对于API,请查看良好的REST惯例以及一般的PHP API设计。如果您想学习MVC,请签出基于该原理构建的MVC框架。现在这个概念已经存在了一段时间,因此像React这样的一些较新的技术并没有真正使用相同的原理。

答案 1 :(得分:0)

  

这是否意味着如果我请求“ website.com/api/blogposts/5”,PHP中的Controller就会读取这是一个api调用,向Model询问5个Blogpost,并将此数据作为响应发送回去。这将使React View成为现实,对吧?

这可能是一种方法。但是,由于我在之前就已经这样做了,因此强烈建议不要将API逻辑放在控制器中。如果您的应用程序倾向于扩展,则控制器将变得庞大,这是您要避免的事情。

您可能应该做的是创建一个处理请求和验证的静态实现,然后您可以从中调用控制器以检索处理后的数据,然后响应请求。 使用这种方法,您将获得更多可维护和一致的代码。 当然,您将保持MVC模式实施的简洁明了。