具有不同模式的REST集合实体

时间:2013-09-09 15:22:14

标签: rest

假设我们有集合/ads/ 该集合的实体结构是:

{"make": "Audi", "model": "A4"}

所以我的问题是:如果我想以不同的形式表示同一个实体该怎么办。例如:

{"aggr": "Audi A4"}

是否应该使用不同的查询参数进行相同的uri? /广告/?架构= AGGR

还是新资源?

/aggr?resource=ads

2 个答案:

答案 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"}