REST api -用POST从视图更新表


REST api - Updating table with POST from view

我是RESTful web服务的新手,仍然在研究与MVC模式相结合的设计/架构方面。我使用Codeigniter框架来实现MVC。

我有一个很简单的问题。我正在使用使用表单数据来更新我的数据库中的表。我已经编写了一个api,它将这样做:

http://www.example.com/api/resource/tablename/?param1=info1..。

典型的api。我想知道的是,在MVC模式中,我应该在我的视图中使用cURL来POST数据并使用表单数据更新我的表,或者我应该仍然将POST数据发送到我的控制器并从控制器调用api来更新表。

对我来说,这似乎是武断的,因为两者都将完成同样的事情,但标准做法是什么?是否可以直接从VIEW与您的api通信以更新您的数据库表?

是否可以直接与您的api从VIEW到更新你的数据库表??

是的,它是……事实上,在这种情况下,这就是你应该做的!将数据直接发送到API。如果任何数据验证失败,您的API应该执行所有数据验证并返回错误消息(以JSON, XML等标准化格式),或者执行任何需要处理post数据的操作。这样做的一个很大的好处是,你的API可以被任何调用者使用,并且它本身就是一个完整的生态系统。

在不了解您的预期应用程序的情况下,我可以这样说:

通常,如果可能的话,您希望尝试将任何处理逻辑(PHP)排除在视图之外。控制器的全部意义在于处理来自模型的事务操作,然后将其传递给视图。因此,如果你正在使用API从服务中收集一些数据,这些数据打算在你的视图中使用/操作,那么它的逻辑位置将在控制器中。

MVC模式不是X进Y、Y进z的硬性法则,它是一种模式,可以很容易地扩展和抽象你的数据收集、处理逻辑和视觉布局。

从技术上讲,根据应用程序和你计划如何使用它,你可以为API创建一个模型,这样它就可以在多个控制器中使用,而不需要重新编写。