今天,我研究了分形 (tldr :数据对象/集合到json格式库),并看到了使用它的一些好处。然而,它的功能似乎跨越了我正在开发的应用程序的多层。因此出现了一个问题--使用分形的代码属于哪里?模型,服务,控制器,其他地方?项目文档中给出的示例似乎倾向于将其放在控制器中或在路由回调中(更复杂的示例似乎来自Laravel应用程序,作者在其关于API的书中提到了这一点)。
我关心的是耦合--如果我把它放在控制器中,就像大多数用法示例所显示的那样,那么我在将来很大程度上会用到它。我的第一本能是把它抽象一点,把抽象绑定到一个契约上,然后再使用它。可能听起来有点过于工程化了,但我正在开发的API“渴望”符合JSON-API,所以用这样的"json格式化程序“来交换其他东西听起来就不那么疯狂了。此外,我仍然需要格式化错误信息和分形似乎没有触及在任何地方。
我想利用对雄辩者的分页器和嵌入式资源的支持,因为这总是很痛苦的。只有这样才会使表示/控制层变得尴尬(至少可以说是这样)。即使在分形文档中,他们也会向控制器类中添加一些额外的方法来准备分形对象。我觉得有点奇怪,但也许只有我一个人。这就是为什么把它带到这里来。
我知道这可能是一个偏爱的问题,但我指望某人有一个合理的声音:)。或者是一个更好的解决方案,记住自动化和json-api遵从性是关键的原因。
发布于 2015-12-15 15:00:13
我曾经在一个专用系统的API类中这样做,我的应用程序需要与其进行接口。API返回的对象看起来非常像模型,因此我为所需的对象实现了许多类,并实现了一个库来进行API调用并返回对象。幸运的是,我只需要对API进行读访问,所以我的库只实现了可用操作的一小部分。
也许您可以将您需要的所有功能(分形功能和任何功能)抽象到一个库类中,您已经为它定义了一个接口。这样,所有分形代码都在一个地方,如果您需要替换它,只需重写自定义库类(这可能是很多工作,但可能比在代码中搜索对Fractal的引用更好)。
https://stackoverflow.com/questions/34275821
复制相似问题