这实际上是关于如何在 Rails 中使用 Roar 和可表示的最佳实践/使用问题,因为我没有找到任何示例。这里有两个场景。我使用装饰器模式。
场景一:
假设我有一个具有多个属性和关联的 Product 类。默认情况下,当有人向 api.com/products/1 发出请求时 - 我想展示我所拥有的一切,但如果有人向 api.com/products/1/inventory_details 这样的另一个动作发出请求 - 我只想要显示与库存有关的有限视图(以便更快地查找库存)或者如果有人向 api.com/products/1/assembly_details 提出请求 - 我想返回相关子组件的矩阵以及一些相关的产品详细信息.
方案 1 的问题:
- 我是为每个案例创建一个特定的代表,例如 ProductRepresenter、ProductInventoryDetailRepresenter、ProductAssemblyDetailRepresenter,还是在 ProductRepresenter 中使用某种流控制?
- 如果我为同一个类创建多个代表,我如何使用代表/respond_with 模式与 respond_to/render ?
- 我可以在操作级别上覆盖它吗?
场景二:
假设我有 api.com/products/1 ,我的内部应用程序都可以调用它,但我也想向我的客户公开。但是,我不希望我的客户看到某些属性,例如库存详细信息,或者可能只是一两个属性。此外,根据员工的访问级别,我想限制他们的视图/表示。
方案 2 的问题:
- 我是为每个案例创建一个特定的表示器,例如 ProductRepresenter、ProductClientViewRepresenter,还是在 ProductRepresenter 中使用某种流控制?
- 如果我为同一个类创建多个代表,我如何使用代表/respond_with 模式与 respond_to/render ?
- 我可以在操作级别上覆盖它吗 - 基于访问类型,例如:admin vs inventory_user vs shipping_user?
任何建议都会被采纳。(我将在 Roar-Rails gem 的 github 上交叉发布此内容)