假设我们有集合/ads/
该集合的实体结构是:
{"make": "Audi", "model": "A4"}
所以我的问题是:如果我想以不同的形式表示同一个实体该怎么办。例如:
{"aggr": "Audi A4"}
是否应该使用不同的查询参数进行相同的uri? /广告/?架构= AGGR
还是新资源?
/aggr?resource=ads
答案 0 :(得分:1)
您的资源不会更改,只会更改其表示形式。在其他原则中,您应该使用超媒体,并按请求标题选择:
Accept: application/vnd.api.adsrepresentation1+json;
Accept: application/vnd.api.adsrepresentation2+json;
答案 1 :(得分:1)
我可能会使用相同的资源,并根据Accept标头参数表示不同的模式。
/ads
Accept: application/json
的请求会返回{"make": "Audi", "model": "A4"}
,如果这是您的默认架构。
/ads
Accept: application/json; schema=aggr
的请求将返回{"aggr": "Audi A4"}
。