Web服务器OOP结构 - 外部API集成?

时间:2017-08-07 01:28:01

标签: node.js api design-patterns model-view-controller backend

我正在使用构建Web应用程序的OOP MVC模式。对于我当前的项目,我必须将来自外部API的数据紧密集成到我的后端(节点)中。这是我第一次这样做。

我的应用程序发送,接收和轮询来自此API服务的数据。

目前我有:

  • 封装API调用的对象。
  • 一个轮询API并更新我应用程序数据库的对象。
  • 想要与我的模型和API数据交谈的mvc控制器。

某些用户操作包括对此API的调用。目前我的控制器正在直接调用API处理程序,一切都感觉有点混乱和相互依赖。我想以最小化数据同步问题的方式构建它。是否有任何标准化或良好的模式将这种外部API集成添加到ruby-on-rails样式的MVC模式中?

1 个答案:

答案 0 :(得分:1)

虽然我对节点只有轻微的经验,但我将把它作为一种通用的做法。

  

我必须将来自外部API的数据紧密集成到我的后端   (节点)。

我不知道具体细节,但这通常是一个坏主意。

您的应用程序应该依赖于它自己的数据模型,控制器和视图。如果您将应用程序与外部模型深度集成,那么您将成为对应用程序进行外部控制的人质。

为了最大化解耦,我会做这样的事情:

|Your App| <-> |Proxy App| <-> |External API|

|您的应用

包含模型视图和控制器,常规内容。 如果你需要外部api的东西,你应该要求 | Proxy App | 发送,接收和汇集数据。 |你的应用程序| 不应该改变,除非有真正的共鸣。

|代理应用程序|

它将向 |外部API | 发出请求并从中检索数据。 如果 |外部API | 发生更改,则只会更改此 |代理应用程序|

所以,记住这一点你应该:

|您的应用

  • 希望与我的模特交谈的mvc控制器。
  • 当控制器需要外部api数据时,它们会向代理应用程序发出请求。

|代理应用程序|

  • 封装了API调用。
  • 轮询API并更新我应用的数据库。
  

某些用户操作包括对此API的调用。

在这种情况下, |您的应用程序| 会向 | Proxy App | 发出请求,谁将处理该请求并处理响应。

希望这能为您提供所需的洞察力。