我使用ember-cli构建Ember应用程序,并使用rails-api + Grape + ActiveModelSerializer作为持久层构建HTTP API。我处于一个非常基本的阶段,但我希望在继续开发更多API和ember模型之前,尽可能以标准和清晰的方式设置我的前端和后端。
我找不到关于商店进行序列化和反序列化的综合指南,但我阅读了有关DS.ActiveModelSerializer和DS.ActiveModelAdapter(说明相同的内容!)及其父类的文档。
适配器和序列化器的确切作用是什么?它们是如何相关的?
考虑到我正在使用的工具,我需要实现它们吗?
Grape / ActiveModelSerializer和EmberData都提供自定义。由于我的后端和前端是相互的,而不是其他任何方面,更好的定制?
答案 0 :(得分:0)
嗯... 哪一方更好是主观的,所以这是我的思考过程:
一般来说,如果需要设备客户端,或者如果API将来被其他方使用,则需要一个能够“与任何交谈”的API,这样就可以建议你配置你的Ember应用程序与你的后端交谈。但同样,我认为这是一个主观的问题/答案,因为除了你和你的团队之外,没有人可以告诉你在创建应用程序时遇到或可能遇到的特定情况有什么好处。
我认为这些指南非常体面地解释了适配器和序列化器role/usage和customization。
至于实现它们,可能需要为应用程序创建一个适配器来定义一个全局命名空间(如果你有一个)(如果你的控制器在localhost:3000 / api / products之后的另一个区域后面,那么设置命名空间:' api'否则这不是必要的),或类似主机,如果你正在使用cors,如果你正在使用cli,你可能想要在环境中设置安全策略,以允许连接到其他域的cors和类似的东西那。这也可以按照模型完成。但同样,所有这些都是主观的,因为它取决于你想要/需要达到的目标。