RESTful处理函数/资源:获取还是发布?

RESTful处理函数/资源:获取还是发布?,rest,restful-architecture,Rest,Restful Architecture,我正在创建一个RESTful web服务,其中一些资源是计算或处理功能。例如,通过提交图像并接收缩放或转换后的图像,用户可以通过API缩放和转换图像 根据《RESTful Web服务食谱》第2.5节,我应该使用GET: Treat the processing function as a resource, and use HTTP GET to fetch a representation containing the output of the processing function. Us

我正在创建一个RESTful web服务,其中一些资源是计算或处理功能。例如,通过提交图像并接收缩放或转换后的图像,用户可以通过API缩放和转换图像

根据《RESTful Web服务食谱》第2.5节,我应该使用GET:

Treat the processing function as a resource, and use HTTP GET to fetch a
representation containing the output of the processing function. Use query
parameters to supply inputs to the processing function.

对于输入简单的情况(例如点的长/纬度坐标),这一点很明显。但是,对于较大的输入(如图像),我是否应该遵循相同的建议?据我所知,不可能将这么多数据作为查询参数发送。

由于HTTP协议的限制,我建议不要使用它。这是一个非常有效、非常可行的例外示例,应该对此规则进行例外处理。

查看此链接。它说IE的最大URL是2083个字符

使用POST。实际上,您正在服务器上进行图像上载和处理。除非映像已存储在服务器上,否则无法想出其他方法来执行此操作。

映像是一种资源。使用
PUT
将资源放在服务器上,然后
GET
获取资源,并提供指示所需大小的参数。

Wow,这非常耐人寻味!如果只有客户端提交图像ID作为请求的一部分,则使用
PUT
。如果服务器生成图像ID并在成功时返回,请使用
POST
。谷歌“REST幂等”,或者看看我们是否关心存储?然后我们无法保存数据,然后PUT没有意义这是一个重要的概念:“图像已经存储在服务器上。”是使用PUT还是POST将其保存到服务器上是一个问题。在当前的形式下,这个答案不应该被接受。继续读,谷歌伙伴。