我有一个支持端点上单个对象的GET的API
GET /api/objects/id?format=long
GET /api/objects/id?format=short
短版本包含较少的有效负载字段。短格式可能会用在object.summary
之类的路线中,也可能用于object.details
中的长路线。
我希望能够通过执行类似
的操作来使用此功能this.store.find('object', id, {format: 'long'})
我能够提出的最佳解决方案是在适配器中编写我自己的find
版本,例如
this.store.findWithFormat('object', id, {format: 'long'})
并借助buildURL
等方法自行构建网址。我还需要在模型中存储短/长信息,这样如果商店中已有的版本是短格式的,它就知道以长格式重新加载该记录。
我考虑创建两个模型,一个名为ObjectShort
,另一个名为ObjectLong
,但这会导致对象的两个版本存在于商店中,更不用说必须更改用于支持该功能的API。
这是一种常见的模式,还有比自己编写这种机器更好的方法吗?