0

假设我们有一个集合/ads/ ,而那个集合的实体结构是:

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

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

{"aggr": "Audi A4"}

它应该是相同的 uri 只是具有不同的查询参数吗?/ads/?schema=aggr

还是新资源?

/aggr?resource=ads

4

2 回答 2

1

您的资源不会改变,只会改变它的表现形式。在休息原则中,您应该为此使用超媒体,并通过请求标头进行选择:

Accept: application/vnd.api.adsrepresentation1+json;
Accept: application/vnd.api.adsrepresentation2+json;
于 2013-09-09T15:30:20.353 回答
1

我可能会使用相同的资源并根据 Accept 标头参数表示不同的模式。

如果这是您的默认架构,则对/adswith的请求Accept: application/json将返回。{"make": "Audi", "model": "A4"}

/ads对with的请求Accept: application/json; schema=aggr将返回{"aggr": "Audi A4"}

于 2013-09-09T15:30:57.807 回答