REST获取资源的计算视图

REST获取资源的计算视图,rest,get,Rest,Get,我对从服务器请求实体计算时使用的正确约定感兴趣。也就是说,涉及一个特定的实体,但它的数据不会返回。而是返回基于实体的计算 以存储多个时钟的站点为例,每个时钟具有不同的偏移量/时区值。该网站的目的是展示指针指向适当方向的模拟时钟图像 使用良好的惯例,我希望能够做到这一点: POST /clocks { "offsetHours": 5 } 我会收到这样的答复: 201 (Created) { "id": "fe884d5e", "offsetHours": 5 } 现在

我对从服务器请求实体计算时使用的正确约定感兴趣。也就是说,涉及一个特定的实体,但它的数据不会返回。而是返回基于实体的计算

以存储多个时钟的站点为例,每个时钟具有不同的偏移量/时区值。该网站的目的是展示指针指向适当方向的模拟时钟图像

使用良好的惯例,我希望能够做到这一点:

POST /clocks
{
    "offsetHours": 5
}
我会收到这样的答复:

201 (Created)
{
    "id": "fe884d5e",
    "offsetHours": 5
}
现在,我希望能够检索该时钟对象:

GET /clocks/fe884d5e
其答复是:

200 (OK)
{
    "id": "fe884d5e",
    "offsetHours": 5
}
到目前为止一切正常。但我还希望访问另外两个端点。第一个将返回为时钟偏移量计算的当前时间。第二个将返回图像数据,显示基于时钟当前时间的模拟时钟

我的问题是:约定规定了这些数据项的GET请求应该是什么样的?或者在处理实体的计算视图时,约定是否松散

但我还希望访问另外两个端点。第一个将返回为时钟偏移量计算的当前时间

差不多

GET /clocks/fe884d53/localTime
第二个将返回图像数据,显示基于时钟当前时间的模拟时钟

差不多

GET /clocks/fe884d5e/localTime/analogClock.jpg

这里的关键思想是,这些都是信息资源,就像时钟本身的描述是一种信息资源一样

从消费者的角度来看,表示只是一个文档。不应该有任何方法知道文档是新生成的,还是从文档存储中复制的,或者是从web缓存中取出的

存在计算的事实只是隐藏在api后面的一个实现


一旦您明确了这些资源共享实现细节的想法,剩下的工作就简单了(路由是否容易找到正确的实现?路径段中是否有分层数据,查询中是否有非分层部分,拼写是否足够像“资源”以符合我们当地的编码标准等。)

很酷,我想我的问题真的与客户是否应该知道某些视图是经过计算的,而其他视图不是,您也回答了这个问题!
GET /clocks/fe884d5e/analogClock.jpg